日付演算子は$project
で使用する必要があります $group
ではなく操作 、したがって、代わりに(シェルで)次のようにする必要があります:
db.tickers.aggregate(
{ $project: {
_id: 0,
year: {$year: '$date'},
month: {$month: '$date'},
day: {$dayOfMonth: '$date'},
hour: {$hour: '$date'},
avg: '$ticker.avg'
}},
{ $group: {
_id: { year: '$year', month: '$month', day: '$day', hour: '$hour' },
avg: { $avg: '$avg'}
}});
結果は次のとおりです。
{
"result": [
{
"_id": {
"year": 2012,
"month": 12,
"day": 19,
"hour": 10
},
"avg": 13.244705635
}
],
"ok": 1
}