我有以下DOC一个CouchDB的:做一个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);
});
}
}
Reduce函数:现在
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和大部分的时间我只需要找到一个单独的密钥的计数。
我不能够使用键=参数,这是我真正想要的东西,因为它返回一个空的结果。
如果我查询?group=true&startkey="couchdb"&endkey="drums"
我得到的CouchDB的计数独自一人,但我不能使用startkey =和endkey =,因为我不知道接下来的关键是在现场DB什么。
,你会在这种情况下,建议有什么解决办法?
我同意,简单的按键和组查询应该只是工作。有一件事要注意可能是正确的urlEncoding任何你需要的双引号。 – 2012-02-07 15:04:33
感谢您的回答,Bernhard。我需要正确地逃脱关键的空间。 – 2012-02-16 06:41:52