MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

MongoDB $ somma e $ media di documenti secondari

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.