我的文档
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/