首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >mongoimport导入JSON数据失败

mongoimport导入JSON数据失败
EN

Stack Overflow用户
提问于 2015-09-07 16:22:45
回答 2查看 17.8K关注 0票数 3

我正在尝试按照本文http://zaiste.net/2012/08/importing_json_into_mongodb/中的步骤将一个名为breedData.json的文件导入mongodb。

因此,我在终端中从我的应用程序的根文件夹中输入以下命令。breedData.json文件也在应用程序根文件夹中。魔神和诺德蒙在跑。

代码语言:javascript
运行
复制
mongoimport --db shelterdoggie --collection breeds --type json --file breedData.json --jsonArray

我得到了这个:

代码语言:javascript
运行
复制
2015-09-07T00:58:18.646-0700    connected to: localhost
2015-09-07T00:58:18.647-0700    Failed: error reading separator after document #2: bad JSON array format - found '{' outside JSON object/array in input source
2015-09-07T00:58:18.647-0700    imported 0 documents

我已经用jsonlint.com检查了我的文件,它是有效的json。

我已经尝试在上面的终端命令中使用这个json格式:

代码语言:javascript
运行
复制
[
{"malehw":"Ht: 9-11.5, Wt: 7-9","femalehw":"Ht: 9-11.5, Wt: 7-9"},
{"malehw":"Ht: 27, Wt: 60","femalehw":"Ht: 25, Wt: 50"},
{"malehw":"Ht: 23, Wt: 45","femalehw":"Ht: <23, Wt: 45"}
]

我也尝试过这种格式,同时在上面的命令中去掉了--jsonArray标志:

代码语言:javascript
运行
复制
{"malehw":"Ht: 9-11.5, Wt: 7-9","femalehw":"Ht: 9-11.5, Wt: 7-9"}
{"malehw":"Ht: 27, Wt: 60","femalehw":"Ht: 25, Wt: 50"}
{"malehw":"Ht: 23, Wt: 45","femalehw":"Ht: <23, Wt: 45"}

但是我得到了这个错误:

代码语言:javascript
运行
复制
2015-09-07T01:11:00.034-0700    connected to: localhost
2015-09-07T01:11:00.035-0700    Failed: error processing document #1: invalid character '{' after array element
2015-09-07T01:11:00.035-0700    imported 0 documents

我已经检查了文件,有152个{和152 },我的文件中有152行/文档,所以它不应该是由于某个地方的未闭合大括号造成的。我不明白为什么这不起作用。如果你有任何建议,我将不胜感激。

下面是我的.json文件中的一整行,如果它有帮助的话:

代码语言:javascript
运行
复制
{"malehw":"Ht: 24-26, Wt: 75-95","femalehw":"Ht: 22-24, Wt: 75-95","catfriendly":"••••","easytraining":"••••••","watchdog":"••••••","grooming":"•••","coldtolerant":"••••","care":"Among the most intelligent of breeds, the German Shepherd Dog is so intent on his mission whatever that may be and he is virtually unsurpassed in working versatility. He is utterly devoted and faithful. He is usually good with other pets.","breed":"German Shepherd Dog","health":"This breed needs daily mental and physical challenges. He enjoys a good exercise session as well as learning session. He is family-oriented and does well as a house dog. His coat needs brushing one or two times weekly.","energy":"••••","playfulness":"•••","dogfriendly":"••","strangerfriendly":"•••","protection":"••••••","heattolerant":"••••","exercise":"•••••","affection":"••••","index":67,"url":"https://www.petfinder.com/dog-breeds/German-Shepherd-Dog"}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-09-09 06:18:46

克莱门特的建议让我走上了正确的道路。将文件的完整文件路径放入工作。终端中的导入命令如下所示:

代码语言:javascript
运行
复制
mongoimport --db shelterdoggie --collection breeds --type json --file ~/dev/shelter_doggie/breedData.json --jsonArray

至于我的csv导入尝试,我在db之前只有一个破折号,而不是两个破折号。我修复了这个问题,并为csv文件添加了完整的文件路径。因此,当我像这样运行命令时,它可以工作:

代码语言:javascript
运行
复制
mongoimport --db shelterdoggie --collection breeds --type csv --file ~/dev/shelter_doggie/kimonoData.csv --headerline

我不确定是否有其他方法可以在没有完整文件路径的情况下做到这一点(正如我最初问题中的文章所指出的),但至少我可以导入我的数据。

票数 8
EN

Stack Overflow用户

发布于 2016-12-21 14:11:34

我在Windows上遇到了类似的问题,因此通过通过标准输入示例传递数据修复了这个问题

代码语言:javascript
运行
复制
cat "PATH\breedData.json" | mongoimport.exe --db shelterdoggie --collection breeds --type json --file --jsonArray

或在Linux上

代码语言:javascript
运行
复制
mongoimport --db shelterdoggie --collection breeds --type json --file --jsonArray < breedData.json
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/32434097

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档