Mapreduce 使用map reduce(Couchbase)编写一个简单的group by
我不熟悉整个map reduce概念,我正在尝试执行一个简单的map reduce函数 我目前正在使用Couchbase服务器作为我的NoSQL数据库 我想获得我所有类型的列表: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",
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用于指出箭头后面的过滤器/分组菜单。我根本不知道它的存在!