ios - 如何使用查询从 CouchBaseLite Mobile 中查找数据?

标签 ios swift3 couchbase-lite

我的文档

let properties: [String : Any] = [
            "project_id":Task.project_id!,
            "title": title,
            "parent_id": parent_id,
            "weight": "1",
            "created_at": DateTime.DateTime(),
            "updated_at": DateTime.DateTime(),
            "type": "group",
            "tag_id":tagId,
            "owner": Session.username!,
        ]

我想按条件查找数据。

我的意思是,我想获取其中 parent_id 不是 nil("") 或 null 的文档。 我正在使用这个查询

func setupViewAndQuery() {

    let listsView = database.viewNamed("list/GroupDropDown")

    if listsView.mapBlock == nil {
        listsView.setMapBlock({ (doc, emit) in
            if let type: String = doc["type"] as? String, let name = doc["title"], let parent_id = doc["parent_id"] as? String, let created  = doc["created_at"], let updated = doc["updated_at"], let Id = doc["_id"]
                , type == "group", parent_id != "" {
                emit([name,parent_id,created,updated,Id], nil)
            }
        }, version: "1.0")
    }

    listsLiveQuery = listsView.createQuery().asLive()
    listsLiveQuery.addObserver(self, forKeyPath: "rows", options: .new, context: nil)
    listsLiveQuery.start()
}

但是这个函数返回所有数据。如何完成这个任务?

最佳答案

您可以创建一个仅在parent_id 不为零时发出条目的 View 。

或者,您可以使用 groupLevel 查看可以给你你想要的。这将涉及使用reduce函数,并且似乎不太适合您的结构。这需要对您的 map 功能进行一些修改。

否则,您可以在迭代查询结果时过滤掉行。

关于ios - 如何使用查询从 CouchBaseLite Mobile 中查找数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44692591/

相关文章:

ios - 如何以横向模式播放视频但应用程序仅支持纵向模式?

ios - SW Reveal View Controller 权限/本地化

ios - 一种忽略方法抛出的任何错误的优雅方法

ruby-on-rails - Rails 应用程序中的 CSRF 服务于 HTML 并为其他客户端(例如 iOS)公开 API

ios - Swift 3 CGImage 内存问题

generics - Swift 3,元类型问题中的 ".self"是否真的正确?

ios - 当手机上没有安装 Facebook 应用程序时,如何在 iOS 应用程序中将照片分享到 Facebook?

C# 如何将一个对象序列化/反序列化到/从 Dictionary<string,Object> 以将其保存/加载到 Couchbase.lite

ios - Couchbase openIDConnect 认证 ios