Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/mongodb/12.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
Mongodb PyMongo MapReduce始终使用浮点数_Mongodb_Mapreduce_Pymongo - Fatal编程技术网

Mongodb PyMongo MapReduce始终使用浮点数

Mongodb PyMongo MapReduce始终使用浮点数,mongodb,mapreduce,pymongo,Mongodb,Mapreduce,Pymongo,我试图使用mapreduce,但出于某种原因,它将整数转换为浮点数 地图: 减少: function(key, values) { var total = 0; for(var i = 0; i < values.length; i++) { total += values[i]; } return total; } Javascript没有“整数”的概念,所有数字都是浮点数。因此,您的emit(this.\u id.p,1)语句正在发出f

我试图使用mapreduce,但出于某种原因,它将整数转换为浮点数

地图:

减少:

function(key, values) {
    var total = 0;
    for(var i = 0; i < values.length; i++) {
        total += values[i];
    }
    return total;
}

Javascript没有“整数”的概念,所有数字都是浮点数。因此,您的
emit(this.\u id.p,1)
语句正在发出float 1.0。MongoDB为Javascript解释器提供了一个
numberrint
NumberLong
类来解决这个问题

请尝试发射(此。_id.p,numberprint(1))

function(key, values) {
    var total = 0;
    for(var i = 0; i < values.length; i++) {
        total += values[i];
    }
    return total;
}
[
    {u'_id': 1.0, u'value': 6.0}, 
    {u'_id': 2.0, u'value': 6.0}, 
    {u'_id': 3.0, u'value': 5.0}, 
    {u'_id': 4.0, u'value': 6.0}, 
    {u'_id': 5.0, u'value': 3.0}, 
    {u'_id': 6.0, u'value': 6.0},
    **snip**
]