I am new to map / reduce and trying to figure out a way to collect the following data using map / reduce instead doing it my my (slow) application logic:
我有一个收集项目,与收集任务有1:n的关系。 现在,我要收到一系列成果,给我留下第一个是项目,任务最重,最后一个是项目,任务最少。
甚至更完善的一套轮 has也告诉我每个项目有多少任务(假设项目名称是独一无二的):
[project_1: 23, project_2: 42, project_3: 82]
关于地图,我尝试了这样的东西:
map = function () {
emit(this.project_id, { count:1 });
}
减少:
reduce = function (key, values) {
var sum = 0;
values.forEach(function(doc){ sum += 1; });
return { count:sum };
}
我对我的任务进行了评价:
var mr = db.tasks.mapReduce(map, reduce, { out: "results" });
But I get crucial results when querying:
db[mr.result].find();
我在铁路上使用Mongoid,并完全失去。 谁能把我引向正确的方向?
Thx in advance. Felix