使用 ANY 和 AND 过滤领域结果
Filter realm results with ANY and AND
我有这个 NSPredicate:
results?.filter("ANY childs.property = 'prop1' AND ANY childs.key contains[c] %@", "key1")
上面的代码 return 都是 objects 具有 child 的 属性 'prop1' 或 child 的键 'key1'
我需要的是 return 只有具有 child 的 objects 以及 属性 'prop1' 和键 'key1'
详细说明
我有 objects 个 Person
每个 Person
都有一个 childs
属性 这是 Kid
的列表
每个Kid
有两个字符串属性prop
和key
Person[0]
在 child 列表中有两个孩子
Kid[0].prop = prop1
和 Kid[0].key = key1
Kid[1].prop = prop2
和 Kid[0].key = key2
Person[1]
在 child 列表中有两个孩子
Kid[0].prop = prop1
和 Kid[1].key = key2
Kid[1].prop = prop2
和 Kid[1].key = key1
上面的谓词 return 是两个人,而我需要的是 return 只有第一人称,因为只有第一人称 child 和 prop1
和 key1
非常感谢帮助
为了确保同一个对象满足这两个条件,您需要使用子查询:
results?.filter("SUBQUERY(childs, $child, $child.property = 'prop1' AND $child.key contains[c] %@).@count > 0", "key1")
我有这个 NSPredicate:
results?.filter("ANY childs.property = 'prop1' AND ANY childs.key contains[c] %@", "key1")
上面的代码 return 都是 objects 具有 child 的 属性 'prop1' 或 child 的键 'key1'
我需要的是 return 只有具有 child 的 objects 以及 属性 'prop1' 和键 'key1'
详细说明
我有 objects 个 Person
每个 Person
都有一个 childs
属性 这是 Kid
每个Kid
有两个字符串属性prop
和key
Person[0]
在 child 列表中有两个孩子Kid[0].prop = prop1
和Kid[0].key = key1
Kid[1].prop = prop2
和Kid[0].key = key2
Person[1]
在 child 列表中有两个孩子Kid[0].prop = prop1
和Kid[1].key = key2
Kid[1].prop = prop2
和Kid[1].key = key1
上面的谓词 return 是两个人,而我需要的是 return 只有第一人称,因为只有第一人称 child 和 prop1
和 key1
非常感谢帮助
为了确保同一个对象满足这两个条件,您需要使用子查询:
results?.filter("SUBQUERY(childs, $child, $child.property = 'prop1' AND $child.key contains[c] %@).@count > 0", "key1")