获取文档列表中列表的总和

问题描述 投票:0回答:1

考虑这个 mongo 文档,一个带有内部产品列表及其数量的订单:

{
  ordernumber: "1234"
  detail: [
    { "number": "987",
    "count": 10 },
    { "number": "654",
    "count": 5 }
  ]
}

我们如何使用 mongodb shell 获得所有计数的总和?我的总和总是为零,并且不知道该传递什么来表示 _id。

db.preorders.aggregate([ { $match: {} }, { $group: { _id: "$_id", total: { $sum: "$detail.count" } } }])
mongodb mongodb-query
1个回答
1
投票

您可以先做

$unwind
,然后在
$group
上做
null

db.collection.aggregate([
  {
    "$unwind": "$detail"
  },
  {
    "$group": {
      "_id": null,
      "total": {
        "$sum": "$detail.count"
      }
    }
  }
])

这里是Mongo Playground供您参考。

© www.soinside.com 2019 - 2024. All rights reserved.