問題は_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を使用した集計クエリのフィールド
演算子。