错误的 BSON 文档:带有节点 MongoDB 驱动程序的非法 CString
Bad BSON Document: illegal CString with Node MongoDB driver
我收到:
[Error: Bad BSON Document: illegal CString]
当使用 Node MongoDB 驱动程序时,同时使用 Cursor.each
迭代我的一个集合。它似乎使我的一些文档消失了,并且在集合中找不到,即使当我使用 Collection.findOne()
.
查找它们时可以单独访问它们
这是否意味着我的数据以某种方式损坏?
感谢@wdberkeley 在上述评论中提供的所有帮助,帮助我找到了我的问题。
事实证明,我的 collection 中确实有一个损坏的文档,它是在 Mongo 不正常关机期间插入的。不过,我不知道该文档会如何影响我的其余查询。
当您执行 collection.find()
,然后开始用光标在 collection 上迭代时,如果遇到错误,例如使用[Error: Bad BSON Document: illegal CString]
.
cursor.forEach
或 cursor.nextObject
都会发生这种情况。因此,我无法访问 collection 错误之后出现的任何文档,即使我能够使用 collection.findOne
.
单独访问这些文档
在这种情况下对我来说唯一的解决方案是 运行 db.repairDatabase
,它删除了损坏的文档,并为我解决了问题。
我收到:
[Error: Bad BSON Document: illegal CString]
当使用 Node MongoDB 驱动程序时,同时使用 Cursor.each
迭代我的一个集合。它似乎使我的一些文档消失了,并且在集合中找不到,即使当我使用 Collection.findOne()
.
这是否意味着我的数据以某种方式损坏?
感谢@wdberkeley 在上述评论中提供的所有帮助,帮助我找到了我的问题。
事实证明,我的 collection 中确实有一个损坏的文档,它是在 Mongo 不正常关机期间插入的。不过,我不知道该文档会如何影响我的其余查询。
当您执行 collection.find()
,然后开始用光标在 collection 上迭代时,如果遇到错误,例如使用[Error: Bad BSON Document: illegal CString]
.
cursor.forEach
或 cursor.nextObject
都会发生这种情况。因此,我无法访问 collection 错误之后出现的任何文档,即使我能够使用 collection.findOne
.
在这种情况下对我来说唯一的解决方案是 运行 db.repairDatabase
,它删除了损坏的文档,并为我解决了问题。