【发布时间】:2015-12-17 13:04:29
【问题描述】:
让我们考虑一下 Person 和 Dog 的默认 Realm 示例。
名字为“A”的人有 3 只狗,它们的名字分别为“X”、“Y”、“Z”
名字为“B”的人有 2 条狗,名字分别为“X”、“Z”
所以代码将是
[realm beginWriteTransaction];
Person *personA = [Person createInRealm:realm withObject:@{@"name": @"A"}];
Person *personB = [Person createInRealm:realm withObject:@{@"name": @"B"}];
[Dog createInRealm:realm withObject:@{@"name": @"X", @"owners": @[personA, personB]}];
[Dog createInRealm:realm withObject:@{@"name": @"Y", @"owners": @[personA]}];
[Dog createInRealm:realm withObject:@{@"name": @"Z", @"owners": @[personA, personB]}];
[realm commitWriteTransaction];
现在,为了根据我们写的主人得到所有的狗
RLMArray *dogs = [Dog objectsWhere:@"ANY owners = %@", personA];
或
RLMArray *dogs = [Dog objectsWhere:@"ANY owners = %@", personB];
在这种情况下我们应该如何设置索引来提高性能?
我们如何反向链接以便我们可以做到
RLMArray *persons = [Person objectsWhere:@"ANY dogs = %@", dogX];
【问题讨论】: