mongodb中使用mapreduce进行分组统计
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,最近在统计某一个时间段的url去重数,由于数据量巨大导致报错,提示:distinct failed: {"errmsg" : "exception: distinct too big, 16mb ca
千家信息网最后更新 2026年11月02日mongodb中使用mapreduce进行分组统计
最近在统计某一个时间段的url去重数,由于数据量巨大导致报错,提示:
distinct failed: {"errmsg" : "exception: distinct too big, 16mb cap","code" : 17217,"ok" : 0} at src/mongo/shell/collection.js:1108最终通过mapreduce来解决如下:
//定义map函数map=function(){ emit(this.url,{"count":1});}//定义reduce函数reduce=function(key,values){ var total=0; for(var i=0; i < values.length; i++){ total+=values[i].count; } return {count:total}}//执行mapreduce函数,其中out的值是存储执行结果的集合db.runCommand({"mapreduce":"visit","map":map,"reduce":reduce,"query":{"vtime":{"$gte":1412611200,"$lte":1413907119}},"out":"test.tmp"});关于mapreduce的选项解释如下:
"out":{replace:"collection name"} -- mapreduce输出结果会替换掉原来的collection,collection不存在则创建"out":{merge:"collection name"} -- 将新老数据进行合并,新的替换旧的,没有的添加进去"out":{reduce:"collection name"}-- 存在老数据时,在原来的基础上加新的数据(即new value=old value+mapreduce value)"out":{inline:1} -- 不会创建collection,结果保存在内存里面,只限于结果小于16MB的情况
数据
结果
函数
统计
巨大
内存
基础
情况
时间
时间段
存储
提示
解释
输出
分组
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
手冲咖啡和咖啡机区别
互联网科技工作委员会主任
科技平台互联网
美国互联网科技巨头监管
科技创新互联网企业
天下捷融互联网科技
上游互联网科技
甘肃拓世互联网科技有限公司
广西拼得多互联网科技有限公司
深圳前海聚择互联网科技有限公司
字节跳动和互联网科技
互联网时代科技改变生活
互联网科技有哪些公司
智腾互联网科技有限公司
亳州好赞互联网科技有限公司
佛山市拉法互联网科技有限公司
无锡工业互联网科技有限公司
图游互联网科技
互联网科技包装股份有限公司上市
杭州融税互联网科技有限公司
互联网科技企业
安徽鑫晟辉互联网科技
凡科互联网科技
鑫亿盛互联网科技
青岛中康互联网医疗科技有限公司
剑昆互联网络科技有限公司临桂
欧洲十大科技互联网公司
崇明区互联网教育科技诚信经营
互联网公司黑科技创始人
杭州科技互联网公司有哪些