mongodb 删除损坏的 BSON

标签 mongodb

当对我的数据库进行查询时,我得到

“$err”:“BSONElement:错误类型 109”,“code”:10320 }
为了识别文档,我用 pymongo 遍历了完整的集合并得到了 AssertionError:结果批处理从 0 开始,预计为 205881

我能够根据某些字段对我的集合进行分组并按日期排序,从而减少搜索空间......

我无法获得确切的文档,但至少可以在某个范围内找到它...... 不幸的是,尝试删除会引发:

BSONObj 大小:1597071153 (0x315F315F) 无效。大小必须介于 0 和 16793600(16MB) 之间 第一个元素:mall.jpg: ?type=115

知道如何解决这个问题... 谢谢

最佳答案

如果它是副本集,我会在辅助设备上尝试相同的查询,看看那里的数据是否损坏,如果没问题,则故障转移到辅助设备。

如果您不在副本集上,我会考虑从备份恢复,因为此错误表明某处存在某些损坏。

如果您没有备份,我会考虑删除并重新创建索引(有时损坏位于索引中)。

我还会检查您正在运行的 mongodb 版本,并可能升级到最近的稳定版本,作为修复任何已知错误的方法。

如果失败,我会尝试修复数据库 http://docs.mongodb.org/manual/reference/command/repairDatabase/

关于mongodb 删除损坏的 BSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23247924/

相关文章:

mongodb - 为什么这个 msiexec.exe 命令在 powershell 中不起作用?

mongodb - 保证索引的时候加_id?

java - 如何在Spring Boot中从另一个集合获取数据

mongodb - mongodb 文档大小限制会从 16MB 增加吗?

python - 在 MongoDB 中重用 Cursor 对象

javascript - 将 Summernote 与 Meteor 结合使用(发现 Meteor)

java - 在 MongoDB 上以日期格式保存 json 日期字段

Mongodb 具有排名/搜索计数

mongodb - CosmosDB - Mongodb IsUpsert 不适用于批量更新

mongodb - golang中的条件聚合查询