You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

MongoDB脚本插入无效文档时无法显示验证错误详情的咨询

解决MongoDB脚本插入验证错误无详情的问题

问题根源在于mongosh脚本模式下,默认仅输出错误对象的字符串化信息,而交互模式会自动展开错误对象的所有属性。要获取完整验证详情,只需在脚本中通过try-catch捕获错误,并主动访问错误对象的errInfo.validationError字段。

修改脚本示例

把原来的插入代码改成带错误捕获的形式:

try {
  // 替换成你的无效插入语句
  db.faculties.insertOne({ name: 123 }); // 假设你的schema要求name为字符串类型
} catch (error) {
  // 打印完整验证错误详情
  console.log("验证失败详情:");
  console.dir(error.errInfo.validationError, { depth: null });
  // 若需要查看错误对象的全部信息,可使用:
  // console.dir(error, { depth: null });
}

原理说明

当文档验证失败时,MongoDB返回的MongoServerError对象中包含errInfo属性,其中的validationError字段存储了具体的验证失败原因(比如哪个字段不符合规则、预期数据类型是什么等)。交互模式下mongosh会自动解析并展示这些细节,但脚本模式需要手动访问这些属性才能输出完整信息。

内容的提问来源于stack exchange,提问作者roivasot

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 05:44:57