使用 doc._id 和另一个参数查找单个文档
Find a single doc using the doc._id and a another parameter
我找不到这个问题的答案所以我试一试:
我有一个数据库,其中存储的文档具有各种属性,包括代表当前正在使用该应用程序的用户的 uuid
。我需要通过其 _id
字段获取单个文档,但我只希望在 uuid
字段与当前用户匹配时返回它。我在运行时只知道当前用户的 uuid
所以请求需要是动态的。
我试图通过几种不同类型的视图和查询来解决这个问题。最新尝试如下。
查看设计文档内部:
"current_user_passed_id": {
"map": "function(doc){ if(doc.type && doc.type == 'my_doc' && doc._id && doc.uuid) emit([doc._id, doc.uuid], doc)}"
}
查询:
/db/design/_design_name/_view/current_user_passed_id?key=["6e08fe0e990f73593300df411f023ec4", "9698fde5-99b9-4693-8f78-b2ae8a7f03e0"]
在上面的查询中,6e08fe0e990f73593300df411f023ec4
是doc._id
,9698fde5-99b9-4693-8f78-b2ae8a7f03e0
是doc.uuid
Couch DB 映射函数始终具有 _id
属性,因此函数的条件不需要检查。我还需要在查询中使用 startkey
和 endkey
查询参数,而不是 key
参数。 startkey
和 endkey
都采用相同的数组,因为我只是在一个文档之后。
下面是我修改后的工作代码:
查看设计文档内部:
"current_user_passed_id": {
"map": "function(doc){ if(doc.type && doc.type == 'key_doc' && doc.uuid) emit([doc._id, doc.uuid], doc)}"
}
查询:
/db/_design/keys/_view/current_user_passed_id?startkey=["6e08fe0e990f73593300df411f023ec4", "9698fde5-99b9-4693-8f78-b2ae8a7f03e0"]&endkey=["6e08fe0e990f73593300df411f023ec4", "9698fde5-99b9-4693-8f78-b2ae8a7f03e0"]
我找不到这个问题的答案所以我试一试:
我有一个数据库,其中存储的文档具有各种属性,包括代表当前正在使用该应用程序的用户的 uuid
。我需要通过其 _id
字段获取单个文档,但我只希望在 uuid
字段与当前用户匹配时返回它。我在运行时只知道当前用户的 uuid
所以请求需要是动态的。
我试图通过几种不同类型的视图和查询来解决这个问题。最新尝试如下。
查看设计文档内部:
"current_user_passed_id": {
"map": "function(doc){ if(doc.type && doc.type == 'my_doc' && doc._id && doc.uuid) emit([doc._id, doc.uuid], doc)}"
}
查询:
/db/design/_design_name/_view/current_user_passed_id?key=["6e08fe0e990f73593300df411f023ec4", "9698fde5-99b9-4693-8f78-b2ae8a7f03e0"]
在上面的查询中,6e08fe0e990f73593300df411f023ec4
是doc._id
,9698fde5-99b9-4693-8f78-b2ae8a7f03e0
是doc.uuid
Couch DB 映射函数始终具有 _id
属性,因此函数的条件不需要检查。我还需要在查询中使用 startkey
和 endkey
查询参数,而不是 key
参数。 startkey
和 endkey
都采用相同的数组,因为我只是在一个文档之后。
下面是我修改后的工作代码:
查看设计文档内部:
"current_user_passed_id": {
"map": "function(doc){ if(doc.type && doc.type == 'key_doc' && doc.uuid) emit([doc._id, doc.uuid], doc)}"
}
查询:
/db/_design/keys/_view/current_user_passed_id?startkey=["6e08fe0e990f73593300df411f023ec4", "9698fde5-99b9-4693-8f78-b2ae8a7f03e0"]&endkey=["6e08fe0e990f73593300df411f023ec4", "9698fde5-99b9-4693-8f78-b2ae8a7f03e0"]