90

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

C:\>mongodb\bin\mongoimport --db test --collection docs < example2.json

我收到以下错误:

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

例子2.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"}

我需要做什么才能将新的 json 文件导入 mongodb?

4

11 回答 11

122

利用

mongoimport --jsonArray --db test --collection docs --file example2.json

它可能因为换行符而搞砸了。

于 2013-12-15T03:05:00.133 回答
62

下面的命令对我有用

mongoimport --db test --collection docs --file example2.json

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

例子2.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"}
于 2013-10-18T04:01:23.783 回答
41

这对我有用-(来自 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
于 2016-09-21T15:08:40.897 回答
17

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

C:\>mongodb\bin\mongoimport --jsonArray -d test -c docs --file example2.json
于 2014-07-25T11:38:22.133 回答
5

以下两种方法效果很好:

C:\>mongodb\bin\mongoimport --jsonArray -d test -c docs --file example2.json
C:\>mongodb\bin\mongoimport --jsonArray -d test -c docs < example2.json

如果集合在特定用户下,您可以使用-u -p --authenticationDatabase

于 2018-09-19T05:40:38.440 回答
4

此方案适用于 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\并通过支持特定输入以下命令databasNamecollectionName并且fileName.json您希望导入:

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

特此,

  • batchSize 可以是任何整数,根据您的意愿
于 2019-05-04T09:31:17.843 回答
4
mongoimport --jsonArray  -d DatabaseN -c collectionName /filePath/filename.json
于 2017-08-02T11:04:26.630 回答
1

单独打开命令提示符并检查:

C:\mongodb\bin\mongoimport --db db_name --collection collection_name<filename.json

于 2020-02-17T07:48:43.210 回答
0

在 MS Windows 中,mongoimport 命令必须在普通的 Windows 命令提示符下运行,而不是在 mongodb 命令提示符下运行。

于 2014-07-31T20:37:32.893 回答
0

几周前发生在我身上。mongoimport 的版本太旧了。一旦我更新到最新版本,它就会成功运行并导入所有文档。

参考:http ://docs.mongodb.org/master/tutorial/install-mongodb-on-ubuntu/?_ga=1.11365492.1588529687.1434379875

于 2015-06-17T12:20:11.303 回答
0

在 MongoDB 中使用 mongo shell 命令从文件中插入 Json 数组数据(从系统 / pc 的特定位置)。在执行以下命令时,命令应该在单行中。

var file = cat('I:/data/db/card_type_authorization.json'); var o = JSON.parse(文件); db.CARD_TYPE_AUTHORIZATION.insert(o);

JSON 文件: card_type_authorization.json

[{
"code": "visa",
"position": 1,
"description": "Visa",
"isVertualCard": false,
"comments": ""
},{
    "code": "mastercard",
    "position": 2,
    "description": "Mastercard",
    "isVertualCard": false,
    "comments": ""
}]
于 2019-09-10T18:20:01.770 回答