我使用Mongo作爲tick數據庫,我週期性地將數據與時間戳放在一起。稍後我使用這些數據來查詢有關係統的統計信息。Mongo組命令與丟失鍵
我有這樣一個集合:
[
{
"date": ISODate("2014-06-16T03:58:58.152Z"),
"min": 4,
"max": 25
},
{
"date": ISODate("2014-06-18T03:48:58.152Z"),
"min": 3,
"max": 8
},
{
"date": ISODate("2014-06-18T03:48:58.152Z"),
"min": 8,
"max": 12
}
]
我白天使用group
命令把所有文件。
db.stats.group({
keyf: function (doc) {
var date = new Date(doc.date);
date.setHours(0, 0, 0, 0);
return { date: date };
},
reduce: function (curr, result) {
result.max = Math.max(curr.max, result.max || 0);
result.min = Math.min(curr.min, result.min || 0);
},
initial: {}
});
這給我的結果:
[
{
"date": ISODate("2014-06-16T21:00:00.000Z"),
"min": 4,
"max": 25
},
{
"date": ISODate("2014-06-18T21:00:00.000Z"),
"min": 3,
"max": 12
}
]
,我的問題是,因爲是在2014年6月17日沒有條目我需要以某種方式創建一個與min: 0 and max: 0
所以結果應該看起來像:
[
{
"date": ISODate("2014-06-16T21:00:00.000Z"),
"min": 4,
"max": 25
},
{
"date": ISODate("2014-06-17T21:00:00.000Z"),
"min": 0,
"max": 0
},
{
"date": ISODate("2014-06-18T21:00:00.000Z"),
"min": 3,
"max": 12
}
]
如果我可以以某種方式給組命令一組日期作爲鍵這可以工作。如果這可能在Mongo中?
我有類似的問題,看看這裏:http://stackoverflow.com/questions/25039406/skipped-count-0-in-aggregate-function?noredirect=1#comment38963506_25039406 – knowbody