Шаблон сопоставления / уменьшения подобен групповой функции в SQL. Таким образом, некоторые результаты группируются в одном ряду. Так что у вас не может быть одинакового количества результатов.
Число в методе mapReduce () - это число результатов после функции map / lower.
К примеру. У вас есть 2 строки:
{'id':3,'num':5}
{'id':4,'num':5}
И вы применяете функцию карты
function(){
emit(this.num, 1);
}
После этой функции карты вы получите 2 строки:
{5, 1}
{5, 1}
И теперь вы применяете свой метод уменьшения:
function(k,vals) {
var sum=0;
for(var i in vals) sum += vals[i];
return sum;
}
Теперь у вас есть только 1 строка возврата:
2