在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