反向关系过滤列表
filter list on inverse relationship
我今天有点挣扎,以 RealmSwift 文档中给出的示例为例,我想做的是找到一个查询,该查询将使我能够获得只有至少一个主人的狗(从狗对象) .
class Person: Object {
// ... other property declarations
let dogs = List<Dog>()
}
class Dog: Object {
dynamic var name = ""
dynamic var age = 0
let owners = LinkingObjects(fromType: Person.self, property: "dogs")
}
我有这个基本方法:
public class func getDogs() -> Results<Dog>? {
do {
let aRealm = try Realm()
let dogs = aRealm.objects(Dog.self).filter("ANY owners != nil")
return dogs
} catch {
print(error)
}
return nil
}
但它失败了,所以我假设我的查询不正确,尽管我没有找到任何关于此的文档,任何见解将不胜感激。
您可以使用聚合表达式,@count
。以下查询筛选出至少有一位主人的狗。
let dogs = aRealm.objects(Dog.self).filter("owners.@count > 0")
我今天有点挣扎,以 RealmSwift 文档中给出的示例为例,我想做的是找到一个查询,该查询将使我能够获得只有至少一个主人的狗(从狗对象) .
class Person: Object {
// ... other property declarations
let dogs = List<Dog>()
}
class Dog: Object {
dynamic var name = ""
dynamic var age = 0
let owners = LinkingObjects(fromType: Person.self, property: "dogs")
}
我有这个基本方法:
public class func getDogs() -> Results<Dog>? {
do {
let aRealm = try Realm()
let dogs = aRealm.objects(Dog.self).filter("ANY owners != nil")
return dogs
} catch {
print(error)
}
return nil
}
但它失败了,所以我假设我的查询不正确,尽管我没有找到任何关于此的文档,任何见解将不胜感激。
您可以使用聚合表达式,@count
。以下查询筛选出至少有一位主人的狗。
let dogs = aRealm.objects(Dog.self).filter("owners.@count > 0")