Per ottenere la somma e media dei Channels.Value
elementi per ogni documento nella tua raccolta dovrai utilizzare l'elaborazione di aggregazione di mongodb. Inoltre, poiché Channels
è un array di cui dovrai usare l'operatore $unwind per decostruire l'array.
Supponendo che la tua collezione si chiami example
, ecco come puoi ottenere sia la somma del documento che la media di Channels.Value
s:
db.example.aggregate( [
{
"$unwind" : "$Channels"
},
{
"$group" : {
"_id" : "$_id",
"documentSum" : { "$sum" : "$Channels.Value" },
"documentAvg" : { "$avg" : "$Channels.Value" }
}
}
] )
L'output dei dati del tuo post sarebbe:
{
"_id" : SomeObjectIdValue,
"documentSum" : 76,
"documentAvg" : 25.333333333333332
}
Se hai più di un documento nella tua raccolta, vedrai una riga di risultati per ogni documento contenente un Channels
matrice.