BSON解析错误:本地MongoDB数据导入mLab失败求助
解决本地MongoDB数据导入mLab失败的问题
嘿,我知道你已经检查过引号问题,但还是卡在数据导入mLab这一步了对吧?咱们来揪揪问题根源:
你当前的JSON数据是多个文档直接拼接在一起的,而且ObjectId("xxx")这种写法属于MongoDB的原生语法,并不是标准JSON格式,mLab的导入工具没法直接识别它——这就是导入失败的核心原因。我给你两个可行的解决办法:
手动修正JSON格式
把所有文档放到一个数组里,同时把ObjectId("xxx")替换成MongoDB兼容的JSON扩展格式{"$oid": "xxx"},修正后的示例数据应该是这样:
[ { "_id": {"$oid": "59e3bf8aa593df919c1c2c87"}, "key": "core", "name": "Core", "__v": 0 }, { "_id": {"$oid": "59e3c04ca593df919c1c2c89"}, "key": "total-body", "name": "Total Body", "__v": 0 }, { "_id": {"$oid": "59e3c054a593df919c1c2c8a"}, "key": "lower-body", "name": "Lower Body", "__v": 0 } ]
修正后再尝试导入mLab,应该就能成功了。
用MongoDB工具自动生成正确格式
如果数据量比较大,手动修改太麻烦,推荐用mongoexport从本地MongoDB导出标准的JSON文件:
mongoexport --db 你的本地数据库名 --collection 你的集合名 --out export_data.json
这个命令导出的文件会自动把多个文档包裹成数组,同时把ObjectId转换成$oid格式,完全符合mLab的导入要求。
之后可以直接用mLab控制台的导入功能上传这个export_data.json,或者用mongoimport命令直接导入:
mongoimport --uri mongodb://你的mLab用户名:密码@mLab主机地址:端口/数据库名 --collection 目标集合名 --file export_data.json
这样操作下来,导入失败的问题应该就能解决啦!
内容的提问来源于stack exchange,提问作者RioTz
相关产品推荐
相关产品推荐

