首页 > 解决方案 > MongoDB 找到损坏的文档

问题描述

我收集了 900 万条记录,在其中找到了一个索引,如果我试图获取所有文档,则会引发以下错误。

Error: error: {
"ok" : 0,
"errmsg" : "invalid bson type in element with field name '_contract_end_date' in object with unknown _id",
"code" : 22,
"codeName" : "InvalidBSON",
"operationTime" : Timestamp(1585753324, 14),
"$clusterTime" : {
    "clusterTime" : Timestamp(1585753324, 14),
    "signature" : {
        "hash" : BinData(0,"2fEF+tGQoHsjvCCWph9YhkVajCs="),
        "keyId" : NumberLong("6756221167083716618")
    }
}

}

所以我尝试contract_end_date使用$rename运算符将​​字段重命名为。当我尝试updateMany时,它会引发同样的错误。

updateOne有效。但这并没有帮助,因为我只看到了成功消息,但实际上并没有为该索引更新 100 个奇怪的文档。我想知道如何查看损坏的文档以识别其他字段,这将帮助我识别损坏的应用程序。

示例文档: - 这是一个非常简单的扁平结构 - 每个文档中有大约 50 个字段 - 没有嵌套文档。

{
 _id:
 sys_contract_end_date:
 customer_name:
 location:
 owner:
 retailer:
 seller:
}

标签: mongodb

解决方案


推荐阅读