Centos系统下载大全 | Redhat系统下载大全 | Windows2012系统下载大全 | Windows2008系统下载大全| CMS教程 | 网站地图 51运维网-专注Linux/Unix系统安全运维!
当前位置:51运维网 > 数据库 > MongoDB > 正文

mongodb中使用mapreduce进行分组统计

时间:2014-11-03 19:31 来源:未知 作者:www.51ou.com 阅读:

最近在统计某一个时间段的url去重数,由于数据量巨大导致报错,提示:

1
2
3
4
5
distinct failed: {
"errmsg" : "exception: distinct too big, 16mb cap",
"code" : 17217,
"ok" : 0
} at src/mongo/shell/collection.js:1108

经过查阅资料,最终通过mapreduce来解决如下:

1
2
3
4
//定义map函数
map=function(){
    emit(this.url,{"count":1});
}
1
2
3
4
5
6
7
8
//定义reduce函数
reduce=function(key,values){
    var total=0;
    for(var i=0; i < values.length; i++){
        total+=values[i].count;
    }
    return {count:total}
}
1
2
//执行mapreduce函数,其中out的值是存储执行结果的集合
db.runCommand({"mapreduce":"visit","map":map,"reduce":reduce,"query":
{"vtime":{"$gte":1412611200,"$lte":1413907119}},"out":"test.tmp"});

感谢您对【51运维网 http://www.51ou.com/】的支持,我们为您免费提供《mongodb中使用mapreduce进行分组统计》技术文章,《mongodb中使用mapreduce进行分组统计》详细使用和说明,有时《mongodb中使用mapreduce进行分组统计》可能不完善、敬请谅解!如果《mongodb中使用mapreduce进行分组统计》有错误请给我们留言,我们将尽快修复文章错误,如果您觉得本站不错,请分享给周围的朋友!谢谢!

顶一下
(0)
0%
踩一下
(1)
100%
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
验证码:点击我更换图片