将json文件插入mongodb

时间:2013-10-18 03:45:09

标签: mongodb

我是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

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"}

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

11 个答案:

答案 0 :(得分:89)

使用

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

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

答案 1 :(得分:48)

下面的命令对我有用

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

当我删除每个文档中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"}

答案 2 :(得分:24)

这对我有用 - (来自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

答案 3 :(得分:15)

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

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

答案 4 :(得分:2)

mongoimport --jsonArray  -d DatabaseN -c collectionName /filePath/filename.json

答案 5 :(得分:1)

以下两种方法可以正常工作:

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

答案 6 :(得分:0)

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

答案 7 :(得分:0)

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

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

答案 8 :(得分:0)

此解决方案适用于Windows计算机。

  1. MongoDB需要数据目录来存储数据。默认路径为C:\data\db。如果没有数据目录,请在C:驱动器中创建一个。 (P.S.:data\db表示目录“ data”中有一个名为“ db”的目录)

  2. 将要导入的json放在以下路径中:C:\data\db\

  3. 打开命令提示符并键入以下命令

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

在这里

  • databaseName:您的数据库名称
  • collectionName:您的收藏名称
  • fileName:位于路径C:\ data \ db
  • 中的json文件的名称
  • batchSize可以是您希望的任何整数

答案 9 :(得分:0)

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

  

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

JSON文件:card_type_authorization.json

[
  {
    "_id": "124564789",
    "xyz": [
      {
        "name": "x",
        "value": "1"
      },
      {
        "name": "y",
        "value": "2"
      }
    ],
    "name": "LOL",
    "user": {
      "email": "LOL@LOL.com"
    }
  },
....
....
}]

答案 10 :(得分:0)

分别打开命令提示符 并检查:

C:\ mongodb \ bin \ mongoimport --db db_name --collection collection_name