在MapReduce之前,建立次数元素的数量出现在MongoDB集合中



感谢提前的帮助。

我在MongoDB集合中有以下内容

{
id: 12345,
userid: 9876,
CompName: PC-537,
LogonTime: 2015-07-1,
SessionName: Session1
}

我要做的是将数据库绘制到我可以看到的每个comp名称中分配了多少个会话的地方,因此,它将在集合中多次出现comp名称,它将出现一次,并在会话中出现一次与之相关的是值

有人可以给我一些指针吗?我知道使用数字时如何绘制映射(例如降雨: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的结果,也没有给出数字计数。因此,基本上,它给了我所有与Session名称相关的机器,而不是相反(这是我想要的)

有人可以帮助:)

以防将来有人需要这个,请参阅下面的代码

var mapper = function() { 
emit(this.CompName, 1);
};
var reducer = function(compname, counter) {
return Array.sum(count);
};

db.compcollection.mapReduce(mapper, reducer, { out: "comp15" }
 )

最新更新