关于mongodb mapreduce计算问题
发布于 8 年前 作者 wangbinlml 3712 次浏览 来自 问答

求大神指导: 数据: { "_id" : ObjectId(“5832b48b2f908f6afb2c410c”), “sid” : “1700”, “stid” : “1000045449”, “atype” : “1”, “out_from” : “” } { "_id" : ObjectId(“5832b48b2f908f6afb2c410d”), “sid” : “1700”, “stid” : “1000045449”, “atype” : “2”, “out_from” : “” } { "_id" : ObjectId(“5832b48b2f908f6afb2c410e”), “sid” : “1700”, “stid” : “1000045449”, “atype” : “3”, “out_from” : “” } { "_id" : ObjectId(“5832b48b2f908f6afb2c410f”), “sid” : “1700”, “stid” : “1000045449”, “atype” : “0”, “out_from” : “” }

mapreduce:

var map = function () { emit( { sid: this.sid, stid: this.stid, atype: this.atype }, {count: 1} ); }; var reduce = function (key, values) { total = 0; for (var i in values) { print(values[i]) total += values[i].count; }

  return {"count": total};

};

其中: atype状态是:0,1,2,3,而1,2是属于一种类型,需要怎么写map,reduce把1,2归类成一种类型。

2 回复

或者是合成一条数据,里面有各种atype状态是:0,1,2,3。

在emit的时候把第一种类型,第二种类型的key写成同一个就可以了,emit按照key来分组的

回到顶部