我有这个预测:

results?.filter("ANY childs.property = 'prop1' AND ANY childs.key contains[c] %@", "key1")

上面的代码返回具有属性“prop1”的子级或键“key1”的子级的所有对象
我需要的是只返回同时具有属性“prop1”和键“key1”的子对象
详细说明
我有Persons的对象
每个Person都有一个childs属性,它是Kid的列表
每个Kid都有两个字符串属性propkey
有两个孩子在孩子名单上
Person[0]Kid[0].prop = prop1
Kid[0].key = key1Kid[1].prop = prop2
有两个孩子在孩子名单上
Kid[0].key = key2Person[1]
Kid[0].prop = prop1Kid[1].key = key2
上面的谓词返回两个人,而我需要的是只返回第一个人,因为只有第一个人有一个Kid[1].prop = prop2Kid[1].key = key1的子级
非常感谢你的帮助

最佳答案

为了确保两个条件都由同一个对象满足,需要使用子查询:

results?.filter("SUBQUERY(childs, $child, $child.property = 'prop1' AND $child.key contains[c] %@).@count > 0", "key1")

关于swift - 使用ANY和AND过滤 Realm 结果,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44620725/

10-09 09:21