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を検索して同様の結果を得る記述方法はあるでしょうか?