För att få summan och genomsnittlig av Channels.Value
element för varje dokument i din samling måste du använda mongodbs Aggregation-bearbetning. Vidare, eftersom Channels
är en array som du behöver använda operatorn $unwind för att dekonstruera arrayen.
Förutsatt att din samling heter example
, så här kan du få både dokumentsumman och genomsnittet för Channels.Value
s:
db.example.aggregate( [
{
"$unwind" : "$Channels"
},
{
"$group" : {
"_id" : "$_id",
"documentSum" : { "$sum" : "$Channels.Value" },
"documentAvg" : { "$avg" : "$Channels.Value" }
}
}
] )
Utdata från ditt inläggs data skulle vara:
{
"_id" : SomeObjectIdValue,
"documentSum" : 76,
"documentAvg" : 25.333333333333332
}
Om du har mer än ett dokument i din samling kommer du att se en resultatrad för varje dokument som innehåller en Channels
array.