【发布时间】:2012-02-07 08:06:56
【问题描述】:
我有一个带有以下文档的 CouchDB:
{
"name":"Chris",
"tags":["mustache", "music", "couchdb"]
}
{
"name":"Noah",
"tags":["hypertext", "philosophy", "couchdb"]
}
{
"name":"Jan",
"tags":["drums", "bike", "couchdb"]
}
地图功能:
function(dude) {
if(dude.name && dude.tags) {
dude.tags.forEach(function(tag) {
emit(tag, 1);
});
}
}
减少功能:
function(keys, values) {
return sum(values);
}
现在,如果我使用 ?group=true 参数查询视图,我会返回每个标签的计数:
{"rows":[
{"key":"bike","value":1},
{"key":"couchdb","value":3},
{"key":"drums","value":1},
{"key":"hypertext","value":1},
{"key":"music","value":1},
{"key":"mustache","value":1},
{"key":"philosophy","value":1}
]}
我应该使用什么查询来单独获取 "couchdb" 的值?
此示例取自 CouchDB 书籍,而我的实时应用程序有 1000 多个键,大多数时候我只需要找到一个单独键的计数。
我无法使用 key= 参数,这正是我想要的,因为它返回一个空结果。
如果我查询 ?group=true&startkey="couchdb"&endkey="drums" 我只得到 couchdb 的计数,但我不能使用 startkey= 和 endkey= 因为我这样做不知道实时数据库中的下一个键是什么。
在这种情况下您会推荐什么解决方案?
【问题讨论】:
标签: couchdb