我想将过滤器应用于属于列表中一组父对象的子对象。
以示例Person和PersonInterest为例。关系人< - >> PersonInterest。 PersonInterest只有一个属性映射到枚举值(小数字)。
我有一个庞大的商店数据库,并亲自挑选了一些Person对象并将其ObjectID放在一个数组中。现在我想过滤那些具有标识为1的特定兴趣的人。
谓词可能是 1)获取PersonInterest
@"(person IN %@) AND (interestType == 1)",personObjectIDList
2)或获取人
@"(self IN %@) AND (ANY personInterests.interestType == 1)",personObjectIDList
鉴于每个人平均有5个兴趣,这两个查询都有效吗?
我以后可能希望匹配多个兴趣所以查询2是我的首选,例如:
@"(self IN %@) AND (ANY personInterests.interestType IN (1,2))",personObjectIDList //this may not work due to predicate restrictions for to-many
.....以及这些与存储一个JSON兴趣类型列表的人的属性相比如何与我填充第一个和最后一个元素0(例如'[0,1,4,3,0]'):
@"(self IN %@) AND (jsonInterestType like '*,1,*')",personObjectIDList