CNode

关于mongodb mapreduce计算问题

问答
Wwangbinlml发布于10 年前最后回复10 年前2 回复4318 浏览0 收藏

求大神指导: 数据: { "_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)

W
wangbinlml#1·10 年前

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

S
sanrudongfeng#2·10 年前

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

参与回复
登录后即可参与回复。登录