如何在 Mongo 中对 2 个或更多数组的元素求和
How to sum elements of 2 or more arrays in Mongo
我是 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
]
}
作为聚合会很困难,但请尝试 map reduce 并使用索引作为 id 发出每个值。类似于:
mapReduce(
function m() {
this.VALUES.forEach(function (value, index) {
emit(index, value)
})
},
function r(id, values) {
return Array.sum(values)
},
{
query: {}
}
)
我是 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
]
}
作为聚合会很困难,但请尝试 map reduce 并使用索引作为 id 发出每个值。类似于:
mapReduce(
function m() {
this.VALUES.forEach(function (value, index) {
emit(index, value)
})
},
function r(id, values) {
return Array.sum(values)
},
{
query: {}
}
)