mongodb的mapreduce实现分组统计数量

分组:test

db.runCommand(
 { mapreduce : "test",
    map : function() {
					  var nameKey = this.name;
					  kws.forEach(function(kw){
					  var key = kw.key;
						if(nameKey.indexOf(key) == 0){
							nameKey = nameKey.substring(key.length, nameKey.length); 
						}
					  });
                      var key = nameKey;
                      var value = {
                                    count: 1
                                   };

                      emit( key, value );
                  },
    reduce : function(key, values) {

					var reducedObject = {
										  name: key,
										  count:0
										};

					values.forEach( function(value) {
										  reducedObject.name = reducedObject.name;
										  reducedObject.count += value.count;
									}
								  );
					return reducedObject;
				 },
	scope:{kws:[{key:"xm: "},{key:"xm:"}]},
	out: { reduce: "test_group" },
	verbose:true
 }
);

travel_forum
分组:title

db.runCommand(
 { mapreduce : "travel_forum",
    map : function() {
                      var titleKey = this.title;
					  kws.forEach(function(kw){
						var key = kw.key;
						if(titleKey.indexOf(key) == 0){
							titleKey = titleKey.substring(key.length, titleKey.length); 
						}
					  });
                      var key = titleKey;
                      var value = 1;
                      emit( key, value );
                  },
    reduce : function(key, values) {

					var count = 0;
					values.forEach( function(value) {
										  count += value;
									}
								  );
					return count;
				 },
	scope:{kws:[{key:"回应: "},{key:"回复:"}]},
	out: { reduce: "travel_forum_group" },
	verbose:true
 }
);

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值