首页 > 解决方案 > MongoDB中相等数组中第一个数组的总和

问题描述

我有这个系列,我只想从第一单元添加“califOrdi”....有人帮帮我

结果应该是 16.8

{
    "name": "Lucy",
    "calif": [{
            "numUnidad": 1, "califOrdi": 7.8
        },
        {
            "numUnidad": 2, "califOrdi": 10
        }
    ]
},

{
    "name": "Daniel",
    "calif": [{
            "numUnidad": 1, "califOrdi": 8
        },
        {
            "numUnidad": 2, "califOrdi": 7.8
        }
    ]
},

{
    "name": "Adan",
    "calif": [{
            "numUnidad": 1, "califOrdi": 9
        },
        {
            "numUnidad": 2, "califOrdi": 7.8
        }
    ]
}

标签: arraysmongodb

解决方案


您正在寻找的查询是这样的:

db.collection.aggregate([
  {
    "$group": {
      "_id": "sum",
      "unit1": {
        $push: {
          $arrayElemAt: [
            "$calif",
            0
          ]
        }
      }
    }
  },
  {
    "$project": {
      _id: false,
      sum: {
        $sum: "$unit1.califOrdi"
      }
    }
  }
])

结果:

[
  {
    "sum": 24.8
  }
]

请注意,这假定您的numUnidad:1项目始终是数组的第一个位置。

游乐场:https ://mongoplayground.net/p/nE5CiK7Kqhr


推荐阅读