2012-07-17 248 views
0

我正在尋找一個非常簡單的聚合查詢在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} 
}); 

提前感謝!

回答

3

您可以對由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} 
});