You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB如何统计所有文档中数组orders的总数量?

解决MongoDB统计所有orders总数量的问题

你只需要在现有聚合管道基础上添加$group阶段,对所有用户的订单数求和即可,这里提供两种实现方式:

方式一:基于现有查询扩展

直接在你已有的$project阶段后添加$group,把所有文档聚合为同一组并计算总和:

[
  {
    $match: {
      orders: { $exists: true },
    },
  },
  {
    $project: {
      ordersCount: {
        $size: '$orders',
      },
    },
  },
  {
    $group: {
      _id: null, // 将所有文档归为同一组
      totalOrders: { $sum: '$ordersCount' } // 累加每个用户的订单数
    }
  }
]

方式二:更高效的精简写法

可以省略$project阶段,直接在$group里完成订单数计算与求和,减少管道阶段提升性能:

[
  {
    $match: {
      orders: { $exists: true },
    },
  },
  {
    $group: {
      _id: null,
      totalOrders: { $sum: { $size: '$orders' } } // 直接计算每个orders数组长度并累加
    }
  }
]

两种方式最终都会返回一个包含totalOrders字段的文档,该字段值即为所有用户的订单总数量。

内容的提问来源于stack exchange,提问作者margherita pizza

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.20 10:36:54