【发布时间】:2013-07-13 17:50:59
【问题描述】:
我在 MongoDB 中使用 db.collection.aggregate 时遇到问题。
我有一个像这样的数据结构:
_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。您不能对任意字段进行求和。
标签: mongodb aggregation-framework