MongoDB中的聚合查询
问题描述:
我正在寻找一个非常简单的聚合查询在MongoDB中,但与特定部分挣扎。MongoDB中的聚合查询
我想要做的是拉最后7天内按天分组的所有记录的总和。将7天前的日期定义为UTC很容易,但我想以编程方式进行,因此我不需要每次都制定UTC日期。例如,而不是1341964800我想指定类似date() - 7天。
这里的电流聚集功能我有工作:
db.visits_calc.group(
{ key:{date:true},
cond:{date:{$gt:1341964800}},
reduce:function(obj,prev) {prev.csum += obj.total_imp},
initial:{csum:0}
});
提前感谢!
答
您可以对由Date.now()
返回的毫秒时间戳执行算术运算,以查找7天前的适当时间戳。您需要在7天内减去毫秒数(1000ms/s,60s/min,60min/hr,24小时/ dy,7dys/wk)。
var weekAgo = Date.now() - (1000*60*60*24*7);
db.visits_calc.group(
{ key:{date:true},
cond:{date:{$gt:weekAgo}},
reduce:function(obj,prev) {prev.csum += obj.total_imp},
initial:{csum:0}
});