Om de som . te krijgen en gemiddeld van de Channels.Value
elementen voor elk document in uw verzameling moet u de aggregatieverwerking van mongodb gebruiken. Verder, sinds Channels
is een array die je nodig hebt om de $unwind-operator te gebruiken om de array te deconstrueren.
Ervan uitgaande dat uw verzameling example
. wordt genoemd , hier leest u hoe u zowel de documentsom als het gemiddelde van de Channels.Value
kunt krijgen s:
db.example.aggregate( [
{
"$unwind" : "$Channels"
},
{
"$group" : {
"_id" : "$_id",
"documentSum" : { "$sum" : "$Channels.Value" },
"documentAvg" : { "$avg" : "$Channels.Value" }
}
}
] )
De uitvoer van de gegevens van je bericht zou zijn:
{
"_id" : SomeObjectIdValue,
"documentSum" : 76,
"documentAvg" : 25.333333333333332
}
Als u meer dan één document in uw verzameling heeft, ziet u een resultaatrij voor elk document met een Channels
array.