我是CouchDB的新手,正在玩卷毛,但我似乎无法正确地减少数据
curl -X POST -d '{
"map":"function(doc){ emit(doc.loc, 1) }",
"reduce":"function(keys, values){ return sum(values) }"
}' -H 'Content-Type: application/json' 'http://localhost:5984/users/_temp_view'
我的目的是根据他们的位置(doc.loc)减少我的文档,例如'US','AU','CA'。
我希望能得到这样的结果:
{
"rows":[
{"key":"US", "value":10},
{"key":"AU", "value": 5},
{"key":"CA", "value": 10}
]
}
但相反,我得到一个包含所有文档的空键
{"rows":[{"key":null,"value":1822}]}
正如我尝试的理智检查一样
emit(doc.loc, doc.loc)
得到了
{"rows":[{"key":null,"value":"00AUAUAUAU...
这意味着我的数据上有一个doc.loc
这又是新手级别,所以我可能很简单。
答案 0 :(得分:1)
解决了我在查询中遗漏?group=true
的问题。
curl -X POST -d '{
"map":"function(doc){ emit(doc.loc, 1) }",
"reduce":"function(keys, values){ return sum(values) }"
}' -H 'Content-Type: application/json' 'http://localhost:5984/users/_temp_view?group=true'
给了我预期的结果
{"rows":[{"key":"--","value":25},{"key":"AU","value":493}, ...