为什么我得到了大部分结果的结果

时间:2017-02-23 05:30:23

标签: javascript mongodb mapreduce

我在mongoDB中有Reduse功能。我想在每个州打印AVG的城市。 我只得到一个正确的结果,其余的将是nan

地图功能

function map(){
key = {state : this.state};
values = { numberOfCities:1, statePop: this.pop}; 
emit(key, values)}

和reduce函数

function reduce(key , values){
 numberOfCities = 0.0;
 statePop = 0.0;
 avg = 0.0;
for (i in values){
    numberOfCities += values[i].numberOfCities;
    statePop += values[i].statePop;
    avg = statePop/numberOfCities;
}
return  avg}

如果我使用numberOfCities返回statePop,我将获得正确的数字,但如果我返回操作statePop / numberOfCities,我将获得nan值

错误

json文件(这是一行json文件)

{ "_id" : "20002", "city" : "WASHINGTON", "loc" : [ -76.990055, 38.902365 ], "pop" : 56756, "state" : "DC" }

1 个答案:

答案 0 :(得分:0)

i是您的值对象的实例,而不是索引。因此,而不是values[I].property使用i.property