【发布时间】:2020-07-28 16:28:33
【问题描述】:
我有与 CouchDB 相关的查询:
让我们考虑一下我的数据库名称:test,视图名称:user-view & design名称:_design/user。
我在 couchdb 中有以下 文档:
{ "name" :"ABC", "city" :"Mumbai" }
{ "name" :"PQR", "city" :"Mumbai" }
{ "name" :"XYZ", "city" :"Pune" }
{ "name" :"ABC", "city" :"Pune" }
我有以下用户视图:
function(doc) {
emit([doc.name, doc.city], doc);
}
当我发送以下 GET 请求:
http://127.0.0.1:5984/test/_design/user/_view/user-view?include_docs=true&key=['ABC','Pune']
我得到以下结果:
{ "name" :"ABC", "city" :"Pune" }
假设我一次只有 name 或 city 的值,并且我想使用相同的 view user-view 并得到以下结果:
案例 1 只有 name 可用作 ABC
我应该得到以下结果:
[
{ "name" :"ABC", "city" :"Mumbai" }
{ "name" :"ABC", "city" :"Pune" }
]
案例 2 只有 city 可用作 Pune
我应该得到以下结果:
[
{ "name" :"XYZ", "city" :"Pune" }
{ "name" :"ABC", "city" :"Pune" }
]
案例 3 只有 name 作为 ABC 和 city 作为 Pune 可用
我应该得到以下结果:
[
{ "name" :"ABC", "city" :"Mumbai" }
{ "name" :"XYZ", "city" :"Pune" }
{ "name" :"ABC", "city" :"Pune" }
]
现在考虑我有多个键(姓名、城市、地区、邮政编码、 等),一次我可以有任何一个或要查询的 keys 的多个组合(例如,一次只有 name 的值或 city 和 region 的唯一值em> 一次可用等),我不想最终创建多个视图。是否可以使用单一视图并仍然可以获得 results 的任意组合 keys?
【问题讨论】:
标签: couchdb