我有一个小问题。到现在为止,我对Mongo DB的东西并不是那么深。更像是SQL人,但现在我必须创建一个Map Reduce查询。
我的数据如下:
每个学生都有多个讲座。现在我想要一份所有讲座的清单(没有重复)以及参观的学生人数。
function() {
emit(this.vorlesungen, this._id);
};
function(VL, students) {
return Array.sum(students);
};
这给了我一些我无法弄清楚的奇怪结果。
一些提示会很棒。
答案 0 :(得分:0)
我不确定这是您期望的数据,但是试一试:
db.collection.aggregate([
{$unwind : "$vorlesungen"},
{$group : {_id : "$vorlesungen", studentCount: {$sum : 1}}}
])
答案 1 :(得分:0)
我自己发现了一个问题:
地图:
function() {
this.vorlesungen.forEach(function (elem) {
for(vlname in elem) {
emit(vlname, 1);
}
});
减少
function(key, values) {
return Array.sum(values);
}