首页 > 解决方案 > 查找具有重复 `_id` 的 MongoDB 文档

问题描述

我在_id尝试恢复数据库转储时遇到了重复问题。

Failed: bulk write error: [{[{can't have multiple _id fields in one document}]},

并想找出它是哪个文件,以便我可以删除它。我尝试aggregate过:

db.collection.aggregate([
    {"$group" : { "_id": "$_id", "count": { "$sum": 1 } } },
    {"$match": {"_id" :{ "$ne" : null } , "count" : {"$gt": 1} } }
]);

_id形式

{ "_id" : { "$oid" : "55ad085569702d6a820007b3" }

但是聚合没有给出任何结果,我不确定语句是否有错误。

不能在自身上聚合_id吗?谢谢你。

标签: mongodb

解决方案


错误“一个文档中不能有多个 _id 字段”并不表示多个文档具有相同 _id 值的重复键错误。

它表示单个文档有多个名为 _id 的字段。

您可以尝试使用该bsondump实用程序从转储目录中提取 bson 文件以直接检查文档。


推荐阅读