我在Mongo中有以下查询。
db.act.group({
"key": {
"uid": true,
"weeka": true
},
"initial": {
"countid": 0,
"summin": 0
},
"reduce": function(obj, prev) {
if (obj.id != null) if (obj.id instanceof Array) prev.countid += obj.id.length;
else prev.countid++;
prev.summin = prev.summin + (parseInt(obj.vmin) + parseInt(obj.mmin)) - 0;
}
})
这会收集一个包含用户活动条目的集合,并按周分解。给出用户ID的总和以及他们不同记录的活动分钟的时间。
效果很好。但是,它没有扩展。当我在一整套数据(大约500,000行)上运行时,我得到了
group command failed: {
"errmsg" : "exception: group() can't handle more than 20000 unique keys",
"code" : 10043,
"ok" : 0
有没有人知道解决这个问题的方法,我看着试图用map reduce来做,但是无法弄清楚如何让它在多个项目上进行分组。
谢谢!