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

MongoDB如何使用$group按字段分组,聚合统计对应唯一值列表

实现方案

你需要在$group阶段搭配$addToSet操作符实现分组后收集唯一值,具体聚合语句如下:

// 将your_collection替换为你实际使用的集合名
db.your_collection.aggregate([
  {
    $group: {
      _id: "$iphone",
      people: {
        $addToSet: "$name"
      }
    }
  }
])

逻辑说明

  • 分组依据_id设置为$iphone,表示所有iphone字段值相同的文档会被归为同一组
  • $addToSet是MongoDB聚合的数组操作符,作用是将指定字段的值加入数组时自动去重,恰好满足你统计分组内唯一姓名的需求。如果你之前用$push得到的结果有重复姓名,替换为$addToSet即可解决。

可选扩展

如果需要对分组结果按iphone型号排序,可以在聚合管道末尾新增$sort阶段:

db.your_collection.aggregate([
  {
    $group: {
      _id: "$iphone",
      people: { $addToSet: "$name" }
    }
  },
  {
    $sort: { _id: 1 } // 1为升序,-1为降序
  }
])

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 10:45:09