В mongodb у меня есть функция карты, как показано ниже:
var map = function() {
emit( this.username, {count: 1, otherdata:otherdata} );
}
и уменьшите функцию как показано ниже:
var reduce = function(key, values) {
values.forEach(function(value){
total += value.count; //note this line
}
return {count: total, otherdata: values[0].otherdata}; //please ignore otherdata
}
Проблема с записанной строкой:
total += value.count;
В моем наборе данных функция Reduce вызывается 9 раз, и предполагаемый результат сокращения карты должен составлять 8908.
В приведенной выше строке возвращенный результат будет правильно возвращен как 8908.
Но если я изменил строку на:
total += 1;
Возвращенный результат будет только 909, примерно 1/9 от предполагаемого результата.
Также я попытался распечатать (value.count), и результат печати равен 1.
Чем объясняется такое поведение?