Для того, чтобы получить сумму и средний из Channels.Value
элементов для каждого документа в вашей коллекции, вам нужно будет использовать Aggregation обработки MongoDB в. Кроме того, поскольку Channels
- это массив, вам нужно будет использовать оператор $unwind для деконструирования массива.
Предполагая, что ваша коллекция называется example
, вот как вы могли бы получить как сумму документа и среднее значение Channels.Value
с:
db.example.aggregate([
{
"$unwind" : "$Channels"
},
{
"$group" : {
"_id" : "$_id",
"documentSum" : { "$sum" : "$Channels.Value" },
"documentAvg" : { "$avg" : "$Channels.Value" }
}
}
])
Вывод данных вашего поста был бы:
{
"_id" : SomeObjectIdValue,
"documentSum" : 76,
"documentAvg" : 25.333333333333332
}
Если в вашей коллекции имеется более одного документа, вы увидите строку результатов для каждого документа, содержащего массив Channels
.
Формулировка вашего вопроса немного запутанна. Вы пытаетесь получить сумму и среднее значение всех элементов «Value» в элементе «Channels» для каждого документа * в вашем запросе? – whyceewhite