Per raggruppare i documenti per giorno/mese e restituire la chiave del mese nell'output, devi prima $project
i campi chiave per i formati appropriati utilizzando la Data
operatori, in particolare $dateToString
e $month
operatori.
Questo può essere fatto in un $project
fase precedente al $group
passaggio ma non necessario poiché $group
pipeline ospita principalmente l'accumulatore
operatori.
Nel precedente $group
pipeline, è possibile raggruppare i documenti in base alla chiave della data formattata, aggregarli utilizzando il $avg
operatore e restituire il mese come intero dalla pipeline precedente utilizzando $first
operatore accumulatore.
L'esecuzione della seguente pipeline di aggregazione dovrebbe darti il risultato desiderato:
db.collection.aggregate([
{ "$group": {
"_id": {
"$dateToString": { "format": "%Y-%m-%d", "date": "$ceatedAt" }
},
"average": { "$avg": "$rating" },
"month": { "$first": { "$month": "$ceatedAt" } },
} }
])