問題は_id
にあるようです $groupに使用しています。 $day
でグループ化する必要があります null
ではなく 、結果を日ごとにグループ化する場合。これを試してください:
PriceHourly.aggregate([
{ $match: { date: { $gt: start, $lt: end } } },
{ $group: { _id: "$day", price: { $avg: '$price' } } }
], function(err, results){
console.log(results);
});
とはいえ、日と時間を別々の要素としてドキュメントに保存する必要はありません。冗長データです。 day
を抽出できます およびhour
date
から Date Aggregation
を使用した集計クエリのフィールド
演算子。