感谢您的帮助。
我在mongodb集合中有以下内容
{
id: 12345,
userid: 9876,
CompName: PC-537,
LogonTime: 2015-07-1,
SessionName: Session1
}
我想要做的是将数据库Mapreduce到我可以看到为每个comp名称分配了多少个会话,所以在集合中多次出现的comp名称,它会出现一次,与会话一起与它相关联显示为值
有人可以给我一些指示吗?我知道如何在使用数字时使用mapreduce(例如降雨量:9mm)并且计算结果,但是当它的文本我怎么能找到减少它以便PC只出现一次,并且还列出他们拥有的所有会话和总数他们有过的会议。
到目前为止我尝试的是以下
var mapFunc = function() {
emit(this.CompName, this.SessionName);
};
var reduceFunc = function(keyComp, keySession) {
return Array.sum(keySession);
};
db.compcollection.mapReduce(
mapFunc,
reduceFunc,
{ out: "comp2" }
)
这给了我一个结果,数据库减少到会话名称而不是CompName,也没有给出数字计数。所以基本上它给了我所有与会话名相关联的机器,而不是反向(这就是我想要的)
有人可以帮忙:)
答案 0 :(得分:0)
如果将来有人需要这个,我已经想到了这一点,请参阅下面的代码
var mapper = function() {
emit(this.CompName, 1);
};
var reducer = function(compname, counter) {
return Array.sum(count);
};
db.compcollection.mapReduce(mapper, reducer, { out: "comp15" }
)