MongoDB导入失败 - 解析失败:期望“{”:偏移量:0。

15

我试图通过以下命令导入一个大小为7.4 MB的JSON文件:

mongoimport -d mongoimport -c test --file jsonTest.json

但是我遇到了这个问题:

Wed Sep 04 13:08:52.378 exception:BSON representation of supplied JSON is too large: code FailedToParse: FailedToParse: Expecting '{': offset:0

这个Stackoverflow 帖子提到了一个类似的问题,即日期早于1970年1月1日,但是考虑到我的错误信息FailedToParse: Expecting '{': offset:0,那个解释好像并不适用。


你是否已经通过 JSON 验证器发送了它? - Sammaye
我删除了文本,将7.4 MB的文件压缩到6 KB,同时保持整体结构。使用JSON Viewer(Notepad++插件),我能够将文本解析为JSON格式。然后,我尝试在我的6 KB文件上运行上述的mongoimport,但是得到了与我之前列出的相同的错误。 - Kevin Meredith
2
你能否提供一下你的 JSON 样本,以便我们排除故障? - Ross
如果标签内部有换行符,它可能会失败。 - attish
2个回答

34

看起来我晚了很多,但是这是正确答案:

在你的语句中加入--jsonArray,它就能工作了。应该像这样写:

mongoimport -d mongoimport -c test --file jsonTest.json --jsonArray

干杯!!


2
谢谢,这有助于解决我的问题。我的 JSON 文件有多层嵌套,因此添加 --jsonArray 使其正确加载。顺便说一下,在 mongo 文档中,它的意思是“加载一个 JSON 数组,而不是每行一个项目。目前限制为16MB”。 - Will

2

请确保您的json文件格式正确...如果有' [ '括号,请将其删除。检查您的json是否有任何空行。还要检查json文档是否以新行分隔。


1
@harsha,去掉括号会使它成为一个对象,而不是数组。因此,如果该数组中只有一个对象,则它将起作用,但如果有多个对象,则会失败。 - Sunny Sharma
仅供参考:使用在线JSON格式化程序验证JSON http://www.jsoneditoronline.org/ - Ramesh Papaganti

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接