【问题标题】:How to filter one to many relationship如何过滤一对多关系
【发布时间】:2015-10-23 05:00:36
【问题描述】:

我有两个模型

class Survey: Object {
    dynamic var id = 0
    dynamic var campaign: Campaign?
    dynamic var lat = 0.0
    dynamic var lng = 0.0
    dynamic var duration = ""
    dynamic var week = ""
    dynamic var desc = ""

    override static func primaryKey() -> String? {
        return "id"
    }
}

class Campaign: Object {
    dynamic var id = 0
    dynamic var name = ""
    dynamic var date_start = ""
    dynamic var date_end = ""
    dynamic var desc = ""
    let surveys = List<Survey>()

    override static func primaryKey() -> String? {
        return "id"
    }
}

它们填充在表格视图控制器中,顶部带有 UISearchBar。 部分标题 = 活动名称,行单元格是调查的信息。

我如何从我的领域过滤/查询,以便不会显示有 0 个调查的广告系列(包括快速搜索查询)。

目前我的应用仍然显示第 0 行的部分。

我做到了

self.campaigns = self.realm.objects(Campaign).filter("surveys.@count > 0")

但是,这不适用于过滤:(

【问题讨论】:

    标签: ios swift filter realm


    【解决方案1】:

    如果您使用的 Realm 版本早于 v0.96,则应使用 v0.96 或更高版本。自 v0.96 起支持 Collection Keypath Queries (@count, @sum, etc.)。

    RLMArray/List 属性现在支持使用 @count、@min、@max、@sum 和 @avg 的 Keypath 集合查询。有关如何使用它们的更多详细信息,请参阅我们方便的 NSPredicate 备忘单。

    https://realm.io/news/realm-objc-swift-0.96.0/

    【讨论】:

    • 我使用的是 0.96,因此我可以 "self.campaigns = self.realm.objects(Campaign).filter("surveys.@count > 0")" 但是我该如何再次过滤使用 uisearchbar,因为这些广告系列现在计数为 0 仍然存在 0 行,我想完全删除广告系列(部分计数)
    • print(self.realm.objects(Campaign))的结果怎么样?正确存储在 Realm 中的 Campaign 和 Survey 对象?
    • 是的,他们是。基本上我的问题是,有没有办法搜索我所有的调查,并且只在我的部分的新广告系列结果中添加一次
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-05-20
    • 2015-08-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多