将json文件插入mongodb

Jay*_*Jay 66 mongodb

我是mongodb的新手.在Windows中安装mongodb后,我尝试使用以下命令插入一个简单的json文件:

C:\>mongodb\bin\mongoimport --db test --collection docs < example2.json
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

connected to: 127.0.0.1
Fri Oct 18 09:05:43.749 exception:BSON representation of supplied JSON is too large: code FailedToParse: FailedToParse: Field name expected: offset:43
Fri Oct 18 09:05:43.750
Fri Oct 18 09:05:43.750 exception:BSON representation of supplied JSON is too large: code FailedToParse: FailedToParse: Expecting '{': offset:0
Fri Oct 18 09:05:43.751
Fri Oct 18 09:05:43.751 exception:BSON representation of supplied JSON is too large: code FailedToParse: FailedToParse: Field name expected: offset:42
Fri Oct 18 09:05:43.751
Fri Oct 18 09:05:43.751 exception:BSON representation of supplied JSON is too large: code FailedToParse: FailedToParse: Expecting '{': offset:0
Fri Oct 18 09:05:43.751
Fri Oct 18 09:05:43.752 exception:BSON representation of supplied JSON is too large: code FailedToParse: FailedToParse: Field name expected: offset:44
Fri Oct 18 09:05:43.752
Fri Oct 18 09:05:43.752 exception:BSON representation of supplied JSON is too large: code FailedToParse: FailedToParse: Expecting '{': offset:0
Fri Oct 18 09:05:43.752
Fri Oct 18 09:05:43.752 check 0 0
Fri Oct 18 09:05:43.752 imported 0 objects
Fri Oct 18 09:05:43.752 ERROR: encountered 6 error(s)s
Run Code Online (Sandbox Code Playgroud)

example2.file

{"FirstName": "Bruce", "LastName": "Wayne", 
"Email": "bwayne@Wayneenterprises.com"}
{"FirstName": "Lucius", "LastName": "Fox", 
"Email": "lfox@Wayneenterprises.com"}
{"FirstName": "Dick", "LastName": "Grayson", 
"Email": "dgrayson@Wayneenterprises.com"}
Run Code Online (Sandbox Code Playgroud)

如何将新的json文件导入mongodb需要做什么?

Leo*_*eon 96

使用

mongoimport --jsonArray --db test --collection docs --file example2.json
Run Code Online (Sandbox Code Playgroud)

由于换行符,它可能搞乱了.


mit*_*esh 48

以下命令对我有用

mongoimport --db test --collection docs --file example2.json
Run Code Online (Sandbox Code Playgroud)

当我删除Email每个文档中的属性之前的额外换行符.

example2.json

{"FirstName": "Bruce", "LastName": "Wayne", "Email": "bwayne@Wayneenterprises.com"}
{"FirstName": "Lucius", "LastName": "Fox", "Email": "lfox@Wayneenterprises.com"}
{"FirstName": "Dick", "LastName": "Grayson", "Email": "dgrayson@Wayneenterprises.com"}
Run Code Online (Sandbox Code Playgroud)


nan*_*dad 26

这对我有用 - (来自mongo shell)

var file = cat('./new.json');     # file name
use testdb                        # db name
var o = JSON.parse(file);         # convert string to JSON
db.forms.insert(o)                # collection name
Run Code Online (Sandbox Code Playgroud)


Sum*_*boj 15

导入JSON文件时使用以下命令

C:\>mongodb\bin\mongoimport --jsonArray -d test -c docs --file example2.json
Run Code Online (Sandbox Code Playgroud)


小智 5

以下两种方式效果很好:

C:\>mongodb\bin\mongoimport --jsonArray -d test -c docs --file example2.json
C:\>mongodb\bin\mongoimport --jsonArray -d test -c docs < example2.json
Run Code Online (Sandbox Code Playgroud)

如果集合属于特定用户,则可以使用 -u -p --authenticationDatabase


Ste*_*i J 5

此解决方案适用于 Windows 机器。

  1. MongoDB 需要数据目录来存储数据。默认路径是C:\data\db. 如果您没有数据目录,请在C:驱动器中创建一个,除非使用不同的 VolumeName,例如H:或任何其他相关的 VolumeName),它是您计算机的根目录;

  2. 放置 . 您要导入的jsonC:\data\db\文件位于: .

  3. C:\Program Files\MongoDB\Tools\100\bin在运行命令之前,将 mongoimport.exe 从(mongoimport.exe 的默认路径)复制粘贴到C:\Program Files\MongoDB\Server\[your_server_version]\bin

  4. 从内部打开命令提示符,然后通过支持您想要导入的C:\data\db\特定命令键入以下命令:databasNamecollectionNamefileName.json

mongoimport --db databaseName --collection collectionName --file fileName.json --type json --batchSize 1

特此,

  • batchSize 可以是您希望的任何整数