Untuk mengelompokkan dokumen menurut hari/bulan dan mengembalikan kunci bulan di output Anda, Anda harus terlebih dahulu $project
bidang utama ke format yang sesuai menggunakan Tanggal
operator, khususnya $ dateToString
dan $month
operator.
Ini dapat dilakukan di $proyek
tahap sebelum $group
langkah tetapi tidak perlu karena $grup
pipeline mengakomodasi sebagian besar akumulator
operator.
Dalam $group
pipa, Anda dapat mengelompokkan dokumen berdasarkan kunci tanggal yang diformat, agregat menggunakan $avg
operator dan kembalikan bulan sebagai bilangan bulat dari pipeline sebelumnya menggunakan $first
operator akumulator.
Menjalankan pipa agregasi berikut akan memberi Anda hasil yang diinginkan:
db.collection.aggregate([
{ "$group": {
"_id": {
"$dateToString": { "format": "%Y-%m-%d", "date": "$ceatedAt" }
},
"average": { "$avg": "$rating" },
"month": { "$first": { "$month": "$ceatedAt" } },
} }
])