如何在 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: {}
  }
)