请考虑以下文档:
[
{_id:1, values:[1, 2, 3]},
{_id:2, values:[4, 5, 6]}
]
是否有任何优雅的方法将数组分组/求和为一个新数组,其中第n个元素是原始文档中第n个元素的总和?
{_id:null, values:[5, 7, 9]}
我可以在聚合步骤中总结特定元素:
{$group:{
_id:null,
Values0: {$sum:{$arrayElemAt:["$values",0]}},
Values1: {$sum:{$arrayElemAt:["$values",1]}},
Values2: {$sum:{$arrayElemAt:["$values",2]}}
}},
但是我无法将它们重新放入数组。同样,需要较少键入的内容也将受到高度赞赏:)。如果这不起作用,我可以在C#中遍历bson文档并以这种方式构造答案,但希望在聚合管道中使用某些内容(或mapreduce也许?还没有研究过)