我有以下文件:
[
{
"name": "firstEntry",
"values": [
1,
3
]
},
{
"name": "secondEntry",
"values": [
9,
5
]
}
]
我的最终目标是获得每个元素的总和。例如:
final:[10,8]
所以基本上每个元素都在" final"具有n个元素的数组是"值"中每个元素的总和。包含n个元素的数组。
我已经尝试了以下但是在"放松后#34;阶段,不知道如何进行。
db.entries.aggregate ({
"$unwind": { path: "$values" }
},{
"$group" : {
"_id" : {
"index" : "$arrayIndex",
}
}});
感谢任何帮助。
答案 0 :(得分:2)
请在下面找到查询 - 这可能是改造输出的一个案例,但主要目标已实现:Below example requires mongo 3.2
db.titanium.aggregate ([
{$unwind:{
path: "$values" ,
includeArrayIndex:"arrayIndex"
}},
{
$group:{
_id:"$arrayIndex",
valueCount:{ $sum : "$values"}
}},
{
$group:{
_id:1, // this is to have someting for grouping
final:{$push:"$valueCount"}}}
])
{" _id" :1," final" :[8,10]}