CouchDB汇总饼图数据

CouchDB汇总饼图数据,couchdb,Couchdb,我的CouchDB数据库中有以下文档:- { "_id": "c0d93b8f424037583b2fe71ea403044a", "name": "Joe", "country": "United Kingdom", "email": "joe@acme.com" } { "_id": "c0d93b8f424037583b2fe71ea403044d", "name": "Joe", "country": "United Kingdom", "

我的CouchDB数据库中有以下文档:-

{
   "_id": "c0d93b8f424037583b2fe71ea403044a",
   "name": "Joe",
   "country": "United Kingdom",
   "email": "joe@acme.com"
}
{
   "_id": "c0d93b8f424037583b2fe71ea403044d",
   "name": "Joe",
   "country": "United Kingdom",
   "email": "joe@acme.com"
}
{
   "_id": "c0d93b8f424037583b2fe71ea403044z",
   "name": "Joe",
   "country": "United Kingdom",
   "email": "joe@acme.com"
}
{
   "_id": "c0d93b8f424037583b2fe71ea403044x",
   "name": "Fred",
   "country": "France",
   "email": "Fred@acme.com"
}
{
   "_id": "c0d93b8f424037583b2fe71ea403044g",
   "name": "Fred",
   "country": "France",
   "email": "Fred@acme.com"
}
{
   "_id": "c0d93b8f424037583b2fe71ea403044p",
   "name": "Bill",
   "country": "Germany",
   "email": "Bill@acme.com"
}
我想总结一下这些数据,这样我就可以根据国家生成一个饼图,但我正在努力计算map reduce代码,以获得各国的文档数量

有人能帮我解释一下吗

致以最良好的祝愿

卡尔斯基

这很简单

你的地图功能只是将国家作为一个键,1作为一个值

功能(doc){
如果(文件国家){
排放(文件国家,1);
}
}
现在,reduce函数就是
\u sum
函数

使用
group\u level
参数将视图设置为1来查询视图

GET/db/_design/app/_view/bycountry?group_level=1`

你的结果应该是这样的

{
    "rows": [
        {"key": "France", "value": 2},
        {"key": "Germany", "value": 1},
        {"key": "United Kingdom", "value": 3}
    ]
}
这很简单

你的地图功能只是将国家作为一个键,1作为一个值

功能(doc){
如果(文件国家){
排放(文件国家,1);
}
}
现在,reduce函数就是
\u sum
函数

使用
group\u level
参数将视图设置为1来查询视图

GET/db/_design/app/_view/bycountry?group_level=1`

你的结果应该是这样的

{
    "rows": [
        {"key": "France", "value": 2},
        {"key": "Germany", "value": 1},
        {"key": "United Kingdom", "value": 3}
    ]
}

另外,如果您需要总计,只需调用相同的查询,除了使用
group=false
而不是
group\u level
。您还可以使用
group=true
而不是
group\u level=1
,在这种情况下,这将执行完全相同的操作。这样,您只需在
true
false
之间切换
group
。感谢您的及时回复。但是,当我尝试上面这样的查询时,它返回:{“error”:“query_parse_error”,“reason”:“对于非reduce视图,URL参数'group'或'group_level'无效。”}听起来好像您没有添加reduce函数。我在回答中添加了更多的信息。太棒了这就成功了。非常感谢你的帮助!另外,如果您需要总计,只需调用相同的查询,除了使用
group=false
而不是
group\u level
。您还可以使用
group=true
而不是
group\u level=1
,在这种情况下,这将执行完全相同的操作。这样,您只需在
true
false
之间切换
group
。感谢您的及时回复。但是,当我尝试上面这样的查询时,它返回:{“error”:“query_parse_error”,“reason”:“对于非reduce视图,URL参数'group'或'group_level'无效。”}听起来好像您没有添加reduce函数。我在回答中添加了更多的信息。太棒了这就成功了。非常感谢你的帮助!