У меня возникла проблема, когда я использую db.collection.aggregate в MongoDB.
У меня есть структура данных, например:
_id:...
Segment:{
"S1":1,
"S2":5,
...
"Sn":10
}
Это означает следующее в Segment
: У меня может быть несколько податрибутов с числовыми значениями. Я хотел бы суммировать их как 1 + 5 + .. + 10
Проблема в том, что я не уверен в именах податрибутов, поскольку для каждого документа номера сегментов разные. Поэтому я не могу перечислить каждое имя сегмента. Я просто хочу использовать что-то вроде цикла for для суммирования всех значений.
Я пробовал такие запросы:
db.collection.aggregate([
{$group:{
_id:"$Account",
total:{$sum:"$Segment.$"}
])
но это не работает.
segment: 5, value: 400
и поместить их в массив или использовать MapReduce. Вы не можете сделать сумму на произвольных полях. - person WiredPrairie   schedule 16.07.2013