mongodb - 查找具有重复 `_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
吗?谢谢你。
解决方案
错误“一个文档中不能有多个 _id 字段”并不表示多个文档具有相同 _id 值的重复键错误。
它表示单个文档有多个名为 _id 的字段。
您可以尝试使用该bsondump
实用程序从转储目录中提取 bson 文件以直接检查文档。
推荐阅读
- php - Laravel 5.6 Session 注册后获取新创建的用户
- c# - 我想在 C# 中将日期“2018-05-18 17:16:24.570”转换为“7/26/2018, 10:42 AM”格式
- go-cd - GoCD:如何设置管道依赖项
- linux - 使用 bash 脚本获取当前目录的第二个根文件夹
- node.js - 在 Heroku 中传输应用程序是否也传输附加组件?
- scala - 是否可以扩展在 Scala 中的 3rd 方 jar 中定义的包私有类
- db2 - SQLRPGLE 插入语句不起作用
- php - 试图显示数据
- neo4j - Cypher:WHERE ALL 未按预期工作
- c# - Specflow feature.cs 文件在自动生成代码时抛出“BadImageFormatException”