За да получите сума исредно на Channels.Value
елементи за всеки документ във вашата колекция, ще трябва да използвате обработката на агрегиране на mongodb. Освен това, тъй като Channels
е масив, който ще трябва да използвате оператора $unwind, за да деконструирате масива.
Ако приемем, че вашата колекция се нарича example
, ето как можете да получите както сумата на документа, така и средната стойност на Channels.Value
s:
db.example.aggregate( [
{
"$unwind" : "$Channels"
},
{
"$group" : {
"_id" : "$_id",
"documentSum" : { "$sum" : "$Channels.Value" },
"documentAvg" : { "$avg" : "$Channels.Value" }
}
}
] )
Резултатът от данните на публикацията ви ще бъде:
{
"_id" : SomeObjectIdValue,
"documentSum" : 76,
"documentAvg" : 25.333333333333332
}
Ако имате повече от един документ във вашата колекция, ще видите ред с резултати за всеки документ, съдържащ Channels
масив.