【问题标题】:How to sum elements of 2 or more arrays in Mongo如何在Mongo中对2个或更多数组的元素求和
【发布时间】:2017-07-03 06:39:44
【问题描述】:

我是 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
    ]
}

【问题讨论】:

    标签: mongodb nosql


    【解决方案1】:

    作为聚合会很困难,但请尝试map reduce 并以索引作为 id 发出每个值。比如:

    mapReduce(
      function m() {
        this.VALUES.forEach(function (value, index) {
          emit(index, value)
        })
      },
      function r(id, values) {
        return Array.sum(values)
      },
      {
        query: {}
      }
    ) 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-09
      • 1970-01-01
      • 1970-01-01
      • 2014-12-15
      相关资源
      最近更新 更多