我有一个按日期分组的地图缩减:
map = %Q{
function() {
var rounded_time = this.created_at;
rounded_time.setHours(0,0,0,0);
emit(rounded_time.getTime() / 1000, this.total);
}
}
reduce = %Q{
function(key, values) {
var result = 0;
values.forEach(function(value) {
result += value;
});
return result;
}
}
data = Order.map_reduce(map, reduce).out(inline: true)
但是当然有些日期没有任何订单,因此它们不会出现在结果中。这被输入到时间序列图中,所以在那些日子里有零会很好。
我想知道是否有一种干净的方法可以用零填充缺失的日期。似乎emit(time, 0)
在每个日期都做一个首字母是一种方法,但我还没有看到在 mongo 中这样做的方法。
所以我坚持在数据从地图减少后按摩数据,这不是那么有效并且容易出现舍入错误。谢谢!