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

如何查找MongoDB集合中的重复键?统计重复BookNumber字段数量

统计含重复BookNumber字段的文档数量

针对你的需求,这里提供MongoDB聚合查询方案,直接统计集合中存在多个BookNumber字段的文档总数:

聚合查询代码

db.yourCollection.aggregate([
  // 将文档转为键值对数组,过滤出BookNumber并统计数量
  {
    $project: {
      bookNumberCount: {
        $size: {
          $filter: {
            input: { $objectToArray: "$$ROOT" },
            cond: { $eq: ["$$this.k", "BookNumber"] }
          }
        }
      }
    }
  },
  // 筛选出BookNumber数量大于1的文档
  { $match: { bookNumberCount: { $gt: 1 } } },
  // 统计符合条件的文档总数
  { $count: "duplicateBookNumberDocs" }
])

说明

  1. 把代码中的yourCollection替换成你的实际集合名称
  2. $objectToArray会将整个文档转换为[{k: 字段名, v: 字段值}, ...]的数组,能保留所有重复字段
  3. 通过$filter筛选出所有键为BookNumber的元素,用$size统计数量,数量大于1的就是存在重复BookNumber的文档
  4. 最后用$count直接返回符合条件的文档总数

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.30 22:09:24