Masalahnya tampaknya dengan _id
Anda gunakan untuk $group. Anda harus mengelompokkan menurut $day
daripada null
, jika Anda ingin mengelompokkan hasil menurut hari. Coba ini:
PriceHourly.aggregate([
{ $match: { date: { $gt: start, $lt: end } } },
{ $group: { _id: "$day", price: { $avg: '$price' } } }
], function(err, results){
console.log(results);
});
Karena itu, Anda tidak perlu menyimpan hari dan jam sebagai elemen terpisah dalam dokumen. Ini data yang berlebihan. Anda dapat mengekstrak day
dan hour
dari date
bidang dalam kueri agregasi menggunakan Date Aggregation
operator.