使用MongoDB Compass导入含数组的JSON文件时报“Callback called multiple times”错误
问题判定
该报错不属于操作不当导致的问题,你提供的示例JSON{"aaa":["sss","aaa"]}完全符合MongoDB文档结构要求,报错核心为对应版本MongoDB Compass的产品缺陷。
触发逻辑说明
- 版本关联产品缺陷:1.32.0~1.38.0区间的桌面版MongoDB Compass存在已知的导入模块逻辑问题——异步解析流程未对回调做重入限制,当导入内容包含数组、嵌套对象结构时,解析动作会重复触发同一回调,直接抛出“Callback called multiple times”错误,和JSON内容的合法性无关。
- 偶发操作类触发场景:若JSON文件从其他系统导出时附带了不可见的BOM头、末尾多余的控制字符,也会触发解析异常,但你给出的示例为纯合法JSON,不属于这类场景。
对应解决方案
- 升级MongoDB Compass至最新稳定版,该类回调重复触发的缺陷已在后续版本修复
- 临时规避可绕过Compass的导入功能,使用原生
mongoimport命令行工具导入同一份JSON文件,不会触发端侧的逻辑bug - 低版本临时绕过方案:将待导入的单文档调整为数组包裹格式
[{"aaa":["sss","aaa"]}],部分版本下可避开触发bug的解析路径
内容的提问来源于stack exchange,提问作者mfed
相关产品推荐
相关产品推荐

