我可以搜索字段的特定值。如何搜索与其他字段相等的字段?例如,
我有docId
和parentDocId
;如何搜索有docId == parentDocId
的记录?
查询以搜索等于“123”的特定id:
let query = ["parentDocId": ["$eq":"123"]]
let result = datastore.find(query, skip: 0, limit: 0, fields: nil, sort: nil)
我想搜索parentDocId==docId的位置。
有什么想法吗?
p.s.我用的是斯威夫特
最佳答案
不需要使用Cloudant查询。假设您的文档具有以下结构
{
"_id": "2b7946de457b6fc9af3e3d29faa3fcba",
"_rev": "3-088f847ef010504e7a5beb0c821d72ea",
"parentDocId": "2b7946de457b6fc9af3e3d29faa3fcba",
...
}
你可以这样创建a view
PUT https://$USERNAME:$PASSWORD@$HOST/$DATABASE/_design/demo HTTP/1.1
Content-Type: application/json
{
"views": {
"parent_child": {
"map": "function (doc) {\n if(doc._id === doc.parentDocId) {\n emit(doc._id, 1);\n }\n}"
}
}
}
并提出质疑:
GET https://$USERNAME:$PASSWORD@$HOST/$DATABASE/_design/demo/_view/parent_child HTTP/1.1
所有客户端库都应该支持视图,因为它们是CouchDB/Cloudant中的一个基本概念。我不熟悉Swift,但是库文档应该确定进行调用所需的适当方法,该方法相当于我列出的一般HTTP方法。