我创建了以下 Map Reduce 并遇到了一些奇怪的事情。我以两种不同的方式计算每个日期的文档数量并得出不同的值。这是我的功能:
map : function Map() {
emit(
this.cDate,//Holds a date value
{
count: 1,
}
);
}
reduce : function Reduce(key, values) {
var reduced = {count:0,count1:0};
values.forEach(function(val) {
reduced.count += val.count;
reduced.count1++;
});
return reduced;
}
finalize : function Finalize(key, reduced) {
return reduced;
}
query : { "cDate" : { "$gte" : ISODate("2012-11-20T00:00:00Z") } }
out : { inline : 1 }
所以基本上奇怪的是最后“count”和“count1”返回不同的值。“count”具有正确的值,即该日期的文档数,而“count1”的值要低得多。谁能解释一下(我是 MongoDB 新手,所以使用简单的术语 :-) 谢谢。