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
相关产品推荐
相关产品推荐

