如何查找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" } ])
说明
- 把代码中的
yourCollection替换成你的实际集合名称 $objectToArray会将整个文档转换为[{k: 字段名, v: 字段值}, ...]的数组,能保留所有重复字段- 通过
$filter筛选出所有键为BookNumber的元素,用$size统计数量,数量大于1的就是存在重复BookNumber的文档 - 最后用
$count直接返回符合条件的文档总数
内容的提问来源于stack exchange,提问作者Sathish
相关产品推荐
相关产品推荐

