在MongoDB中,我有如下的映射函數:mongodb的地圖減少value.count
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
如何解釋這種現象?
你不需要在某處聲明'total'嗎? – Thilo