MongoDB Compass导入JSON文件时报错问题求助
MongoDB Compass导入JSON报错排查方案
核心错误原因
你当前的JSON文件结构不符合MongoDB Compass的默认导入规则:
- Compass导入JSON到集合时,默认要求文件内容要么是由多个独立文档组成的JSON数组,要么是每行一个独立文档的JSON Lines格式,不能是顶层仅包含一个包装了数组的单对象。
- 你提交的JSON本质是一个独立的单文档,
computing、computing2是这个文档的两个数组类型字段,Compass会把整个文件判定为不符合多文档导入要求的结构,进而触发报错。
针对性解决方法
根据你的实际需求二选一即可:
方案1:将数组条目作为集合的独立文档导入
删除外层的包装对象,直接导出数组内容为JSON文件即可。比如你要导入computing数组的内容,文件内容修改为:
[ { "year": "Hour of Code", "unit": "Hour of Code lessons ", "topic": "Drawing with code", "name_of_the_video": "Welcome to our Hour of Code™!", "ID": "Video", "video_duration": "2:16", "youtube_ID": "CYmL-Up_ZNc" }, { "year": "Hour of Code", "unit": "Hour of Code lessons ", "topic": "Drawing with code", "name_of_the_video": "Learning coding on Khan Academy", "ID": "Article", "video_duration": "", "youtube_ID": "" } ]
如果需要同时导入computing和computing2的所有条目,将两个数组合并为一个数组存为文件即可。
方案2:保留当前包装结构作为单个文档导入
如果你的需求就是把整个包含computing、computing2两个字段的对象作为单个文档存入集合,导入时在Compass的导入设置页,勾选将JSON文件作为单个文档导入的选项即可正常导入。
内容的提问来源于stack exchange,提问作者Mark Stone
相关产品推荐
相关产品推荐

