1

我的 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"
}

我想总结这些数据,以便可以根据国家/地区生成饼图,但我正在努力制定地图缩减代码以按国家/地区获取文档数。

有人可以帮我解释一下吗。

此致,

卡尔斯基

4

1 回答 1

1

这很简单。

您的 map 函数只是将国家作为键和1作为值发出。

function(doc) {
  if (doc.country) {
    emit(doc.country, 1);
  }
}

现在您的 reduce 函数只是内置 _sum函数。

group_level使用将其设置为 1 的参数查询您的视图。

获取 /db/_design/app/_view/bycountry?group_level=1`

你的结果应该是这样的。

{
    "rows": [
        {"key": "France", "value": 2},
        {"key": "Germany", "value": 1},
        {"key": "United Kingdom", "value": 3}
    ]
}
于 2012-08-30T21:06:09.363 回答