Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Mongo:具有map/reduce的字段中的和值_Javascript_Mongodb - Fatal编程技术网

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"
}
我想买两样东西:

  • 所有对象的总“值”
  • 具有特定状态的所有对象的“总计”值
以下是我的map/reduce函数:

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;}