Javascript Mongo:具有map/reduce的字段中的和值
我有一个这样的收藏:Javascript Mongo:具有map/reduce的字段中的和值,javascript,mongodb,Javascript,Mongodb,我有一个这样的收藏: { "_id" : ObjectId("foo-1"), "status" : "good", "value" : "100.00" }, { "_id" : ObjectId("foo-2"), "status" : "good", "value" : "100.00" } 我想买两样东西: 所有对象的总“值” 具有特定状态的所有对象的“总计”值 以下是我的map/reduce函数: var map = functi
{
"_id" : ObjectId("foo-1"),
"status" : "good",
"value" : "100.00"
},
{
"_id" : ObjectId("foo-2"),
"status" : "good",
"value" : "100.00"
}
我想买两样东西:
- 所有对象的总“值”
- 具有特定状态的所有对象的“总计”值
var map = function () {
emit("total", {sum: this.value ))
}
var reduce = function (key, values) {
var result = {sum:0};
values.forEach(function (value) {result.sum += value.value;});
return result;
}
var t = db.leads.mapReduce(map, reduce, {out : "total"});
db[t.result].find();
上面的输出是:
PRIMARY> db[t.result].find();
{ "_id" : "total", "value" : { "sum" : NaN } }
为什么“sum”返回NaN?在reduce函数中-
{result.sum += value.value;}
但您正在发送带有“sum”字段的文档。请尝试:
{result.sum += value.sum;}