问题
我有一个文档,其中包含一个_id
和一个集合,Answers
我正在尝试编写一个 map-reduce 函数来汇总每个 id 的答案总分。
文档
/* 0 */
{
"_id" : ObjectId("527b6ba88d251d58a18f3f0a"),
"Answers" : [{
"Score" : 2
}, {
"Score" : 0
}, {
"Score" : 2
}, {
"Score" : 2
}]
}
这是 Map-Reduce,我认为阅读文档是正确的
地图
function() {
this.Answers.forEach(function(val)
{
emit(this._id, val.Score);
});
}
也试过这个
function() {
for (var i = 0; i < this.Answers; i++)
{
emit(this._id, this.Answers[i].Score);
}
}
减少
function(key, values)
{
return Array.sum(values);
}
我没有收到任何信息,但它似乎正在处理它需要 2-5 秒才能返回。我想我对 map-reduce 不了解。
另外我正在使用 MongoVUE 访问 MongoDB。
编辑
我刚刚通过控制台运行了我的 map reduce 并得到了这个输出
{
"results" : [ ],
"timeMillis" : 2506,
"counts" : {
"input" : 1655,
"emit" : 0,
"reduce" : 0,
"output" : 0
},
"ok" : 1,
}
所以这是我的地图功能不正确我猜因为没有发出任何东西。
编辑 2
使用 mongovue 的输出更新文档