时间:2021-07-01 10:21:17 帮助过:2人阅读
参数说明:
Mapreduce:要操作的目标集合
Map:映射函数(生成键值对序列,作为reduce函数参数)
Reduce:统计函数
Query:目标记录过滤
Sort:目标记录排序
Limit:限制目标记录数量
Out:统计结果存放集合(不指定使用临时集合,在客户端断开后自动删除)
Keeptemp:是否保留临时集合
Finalize:最终处理函数(对reduce返回结果进行最终整理后存入结果集合)
Scope:向map、reduce、finalize导入外部变量
Verbose:显示详细的时间统计信息。
3,应用实例
(1)查询active表,每个cid对应的次数。相当于以cid分组。
map=function (){ emit(this.cid,{count:1}) } reduce=function(key,values){ var cnt=0; values.forEach(function(val){ cnt+=val.count;}); return {"count":cnt}; } db.active.mapReduce(map,reduce,{out:‘mr1‘}) (2)按cid和日期分组 map=function(){ emit({cdi:this.cid,cd:this.cd},{count:1}) } reduce=function(key,values){ var cnt=0; values.forEach(function(val){ cnt+=val.count;}); return {"count":cnt}; } db.active.mapReduce(map,reduce,{out:‘mr2‘}) (3)每个cid的产品数量,总金额是多少 map=function(){ emit(this.cid,{amount:this.price,count:1}) } reduce=function (key,values){ var res={amount:0,count:0} values.forEach(function(val){ res.amount+=val.amount; res.count+=val.count }); return res; } db.test.mapReduce(map,reduce,{out:"mr3"})
我的总结:在mongodb中,map对集合分组。reduce对分组结果汇总。
mongodb学习3---mongo的MapReduce
标签: