我有一个包含许多列的集合:col1,col2,WebsiteCode,CreatedDate,col3 ....,coln。MongoDB中错误的MapReduce结果
我想通过WebsiteCode在一个CreatedDate范围内进行分组。
所以我做的:
地图:
function Map() {
var key={WebsiteCode:this.WebsiteCode};
val={Count: 1};
emit(key,val);
}
减少:
function Reduce(key, values) {
var res = {Total:0};
values.forEach(function(value) {
res.Total += value.Count;
});
return res;
}
和查询范围的日期时间:
{ "CreatedDate" : { "$gte" : dateFrom , "$lte" : dateTo } }
最后,我运行这个mapreduce命令。 结果返回不出我所料具有Total = NaN
防爆许多行:{_id:{WebsiteCode:"websitecode1"}}, {value:{Total:NaN}}
但是当我运行计数命令:
db.collect.find({ "WebsiteCode" : "websitecode1", "CreatedDate" : { "$gte" : dateFrom), "$lte" : dateTo } }).count();
结果回报:
你能解释一下对我而言,我做错了什么?
好了,它的完成。许多人感谢@JohnnyHK – Sonrobby