mongodb - 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:
}
解决方案
推荐阅读
- git - 将我需要的文件从 DEV 分支合并到 Azure VSTS 中的 QA
- r - 使用 lme4 为线性模型拟合随机因子
- javascript - “组件”未定义为 no-undef。使用 JSX react/react-in-jsx-scope 时,'React' 必须在范围内
- javascript - Jquery $.post html 到外部 php 并将 html 打印为 pdf。需要找到最优解
- python - 在 WRDS CRSP 查询中使用来自外部文件的 Python dict 值
- java - log4j2 自定义 jdbcapender 没有为一个变量捕获两个不同的值?
- javascript - MUI 更改 Select 的 Label 的 css 和选定选项的颜色
- javascript - 段落中的嵌套跨度不会包裹在子节点上,只会包裹在父节点上
- azure - 在哪里获取 Azure 存储授权:SharedKey?
- python-3.x - 以官方名称合并不同的国家替代名称