Mapreduce 使用map reduce(Couchbase)编写一个简单的group by

Mapreduce 使用map reduce(Couchbase)编写一个简单的group by,mapreduce,nosql,couchbase,Mapreduce,Nosql,Couchbase,我不熟悉整个map reduce概念,我正在尝试执行一个简单的map reduce函数 我目前正在使用Couchbase服务器作为我的NoSQL数据库 我想获得我所有类型的列表: key: 1, value: null key: 2, value: null key: 3, value: null 这是我的文件: { "type": "1", "value": "1" } { "type": "2", "value": "2" } { "type": "3",

我不熟悉整个map reduce概念,我正在尝试执行一个简单的map reduce函数

我目前正在使用Couchbase服务器作为我的NoSQL数据库

我想获得我所有类型的列表:

key: 1, value: null
key: 2, value: null
key: 3, value: null
这是我的文件:

{
   "type": "1",
   "value": "1"
}

{
   "type": "2",
   "value": "2"
}

{
   "type": "3",
   "value": "3"
}

{
   "type": "1",
   "value": "4"
}
我一直想做的是: 编写映射函数:

function (doc, meta) {
  emit(doc.type, 0);
}
_count
使用内置的reduce函数:

function (doc, meta) {
  emit(doc.type, 0);
}
_count
但我没有得到预期的结果

我怎样才能得到所有的类型

更新


请注意,类型是不同的文档,我知道reduce在文档上工作,不会在文档之外执行。

默认情况下,它将减少所有键组。您需要的功能称为
group\u level

这相当于
reduce=true

~ $ curl 'http://localhost:8092/so/_design/dev_test/_view/test?group_level=0'
{"rows":[
{"key":null,"value":4}
]
}
但这里是如何通过键的第一级得到减少

~ $ curl 'http://localhost:8092/so/_design/dev_test/_view/test?group_level=1'
{"rows":[
{"key":"1","value":2},
{"key":"2","value":1},
{"key":"3","value":1}
]
}
也有关于此的博客帖子:

couchbase管理控制台中有适当的选项:

+1用于指出箭头后面的过滤器/分组菜单。我根本不知道它的存在!