Realmのコレクション要素に対する検索条件の記述について
class Dog: Object {
dynamic var name = ""
dynamic var age = 0
let owners = LinkingObjects(fromType: Person.self, property: "dogs")
}
class Person: Object {
dynamic var name = ""
let dogs = List<Dog>()
}
追加したデータ
realm.add(Person(value: ["AAA", [["taro", 1], ["pochi", 6]]]))
realm.add(Person(value: ["BBB", [["kuro", 1], ["hachi", 6]]]))
realm.add(Person(value: ["CCC", [["taro", 6], ["pochi", 6]]]))
realm.add(Person(value: ["DDD", [["kuro", 6], ["chibi", 6]]]))
たとえば、上記のモデルとデータで。
dog.nameが"taro" かつdog.ageが5以下のpersonsを得るには
どのような検索を記述すればよいのでしょうか?
Dogを検索し、ownerをたどってpersonを得ることはできました。
let dogs = realm.objects(Dog.self).filter(NSPredicate(format: "name = 'taro' && age <= 5"))
for dog in dogs {
for p in dog.owners {
NSLog(p.name)
}
}
Personを検索して同様の結果を得る記述方法はあるでしょうか?