我有两个这样的文件
{ "_id" : ObjectId("552cd26276b783ed66031cc4"), "vals" : [ 2, 3, 4, 5 ] }
{ "_id" : ObjectId("552cd26e76b783ed66031cc5"), "vals" : [ 1, 2, 3, 4 ] }
Run Code Online (Sandbox Code Playgroud)
我需要这两个列表的总和
预期产量:
[3, 5, 7, 9]
Run Code Online (Sandbox Code Playgroud)
即[2 + 1,3 + 2,4 + 3,5 + 4]
我甚至不确定MongoDB中是否可以这样做.对此有何看法?
抱歉我没有正确回答问题。我正在考虑如何对每个对象的数组求和。不在两个对象之间添加数组。
(上面编辑)
我对此很陌生,但我认为您想使用聚合运算符 $unwind ,它将分解数组,然后 $sum “vals”。它应该看起来像这样
db.Test.aggregate([{$unwind:"$vals"},{$group:{_id:"$_id","TotalVals":{$sum:"$vals"}}}])
Run Code Online (Sandbox Code Playgroud)
请参阅此处的运算符http://docs.mongodb.org/manual/reference/operator/aggregation-group/
此 ($unwind) 将为数组中的每个值创建一个文档,因此请注意您的内存是否有更大的集合。我相信这个($unwind)是在内存中完成的。
归档时间: |
|
查看次数: |
764 次 |
最近记录: |