我是mongo / nosql的新手,在“VALUES”项中有多个具有相同数组结构的文档。我希望能够将2个或更多数组的每个元素位置相加。谢谢你的帮助!
阵列
{
"_id" : ObjectId("54cbf4e6e883561eba48425e"),
"NAME" : "ATest",
"VALUES" : [
1,
2,
3,
4,
5
]
}
{
"_id" : ObjectId("54cbf4e6e883561eba4842b4"),
"NAME" : "BTest",
"VALUES" : [
10,
20,
30,
40,
50
]
}
期望的结果
{
"_id" : "SUMTest",
"SUMVALUES" : [
11,
22,
33,
44,
55
]
}
答案 0 :(得分:3)
作为聚合会很难,但请尝试map reduce并使用索引作为id发出每个值。类似的东西:
mapReduce(
function m() {
this.VALUES.forEach(function (value, index) {
emit(index, value)
})
},
function r(id, values) {
return Array.sum(values)
},
{
query: {}
}
)