【问题标题】:filter list on inverse relationship反向关系过滤列表
【发布时间】:2017-01-04 17:16:46
【问题描述】:

今天我有点挣扎,以 RealmSwift 文档中给出的示例为例,我想做的是找到允许我(从 dog 对象)获取只有至少一个所有者的狗的查询。

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
}

但它失败了,所以我认为我的查询不正确,虽然我没有找到任何关于此的文档,但任何见解都将不胜感激。

【问题讨论】:

  • 你试过owners.count &gt; 0吗?

标签: ios swift realm nspredicate


【解决方案1】:

您可以使用聚合表达式@count。以下查询过滤了至少拥有一个以上所有者的狗。

let dogs = aRealm.objects(Dog.self).filter("owners.@count > 0")

更多详情请查看:https://realm.io/docs/swift/latest/#filtering

【讨论】:

  • 看不到这个,谢谢伙计,确实是这样!
猜你喜欢
  • 2012-11-03
  • 2020-09-01
  • 2016-04-23
  • 2021-11-02
  • 2019-11-06
  • 1970-01-01
  • 2016-10-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多