部分周的數據分組,我有一些文檔(每日開盤價爲股票),如如下:如何處理的mongodb
/* 0 */
{
"_id" : ObjectId("54d65597daf0910dfa8169b0"),
"D" : ISODate("2014-12-29T00:00:00.000Z"),
"O" : 104.98
}
/* 1 */
{
"_id" : ObjectId("54d65597daf0910dfa8169af"),
"D" : ISODate("2014-12-30T00:00:00.000Z"),
"O" : 104.73
}
/* 2 */
{
"_id" : ObjectId("54d65597daf0910dfa8169ae"),
"D" : ISODate("2014-12-31T00:00:00.000Z"),
"O" : 104.51
}
/* 3 */
{
"_id" : ObjectId("54d65597daf0910dfa8169ad"),
"D" : ISODate("2015-01-02T00:00:00.000Z"),
"O" : 103.75
}
/* 4 */
{
"_id" : ObjectId("54d65597daf0910dfa8169ac"),
"D" : ISODate("2015-01-05T00:00:00.000Z"),
"O" : 102.5
}
,我想通過每週彙總記錄,所以我可以每週平均開盤價。我第一次嘗試是使用:
db.ohlc.aggregate({
$match: {
D: {
$gte: new ISODate('2014-12-28')
}
}
}, {
$project: {
year: {
$year: '$D'
},
week: {
$week: '$D'
},
O: 1
}
}, {
$group: {
_id: {
year: '$year',
week: '$week'
},
O: {
$avg: '$O'
}
}
}, {
$sort: {
_id: 1
}
})
卜我很快意識到的結果是不正確的,上週這兩個2014年(週數52)和2015年第一週(週數0)的部分周。通過這種彙總,我將獲得12/29-12/31/2014的平均價格,以及2015年2月1日(這是2015年第一週的唯一交易日期)的平均價格,但在我的申請中,我需要將2015年12月29日至2015年2月1日的數據進行分組。有什麼建議?
我很好奇,爲什麼我的問題得到反對票?我很樂意找出原因。 – 2015-02-08 14:09:13