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

MongoDB聚合查询问题:返回uniqueKey重复的指定字段文档

MongoDB 查找重复uniqueKey并返回指定字段的聚合查询

以下是能满足需求的聚合查询语句,记得把your_collection替换成你的实际集合名:

db.your_collection.aggregate([
  // 按uniqueKey分组,统计次数并收集目标字段
  {
    $group: {
      _id: "$uniqueKey",
      count: { $sum: 1 },
      docs: {
        $push: {
          cust_name: "$cust_name",
          uniqueKey: "$uniqueKey"
        }
      }
    }
  },
  // 筛选出出现次数大于1的分组
  {
    $match: {
      count: { $gt: 1 }
    }
  },
  // 展开收集的文档数组,让每个条目单独显示
  {
    $unwind: "$docs"
  },
  // 只保留需要的字段,调整输出结构
  {
    $project: {
      _id: 0,
      cust_name: "$docs.cust_name",
      uniqueKey: "$docs.uniqueKey"
    }
  }
])

各阶段作用说明:

  • $group:以uniqueKey为分组依据,统计每个key的出现次数,同时用$push把分组内的cust_name和uniqueKey收集到数组中。
  • $match:过滤掉出现次数≤1的分组,只保留重复的uniqueKey分组。
  • $unwind:将之前收集的文档数组拆分成单独的条目,还原成类似原始文档的结构。
  • $project:清理输出结果,只保留需要的两个字段,去掉分组产生的冗余字段。

如果你的样本数据中uniqueKey为100和800的文档重复,执行这个查询后会返回所有这些重复文档的cust_name和uniqueKey字段。

如果集合里存在缺失uniqueKey的文档,可在聚合最前面加一个过滤阶段优化性能:

{
  $match: {
    uniqueKey: { $exists: true }
  }
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.01 12:22:06