jsonファイルをmongodbに挿入します


82

私は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.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にインポートするには何をする必要がありますか?


2
各ドキュメントが新しい行にあることはmongoimportの要件です。
Samuel O'Malley

2
あなたはあなたの問題を解決する答えを受け入れる(チェックする)べきです。
Sumit Kamboj 2015年

回答:


112

使用する

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

おそらく改行文字のために混乱しています。


このコマンドは、「mongoimport.exe」が存在するディレクトリから実行する必要があります。JSONファイルもそのディレクトリに存在する必要があります。
SamdishArora20年

エラーが発生しない限り、コマンドはdata / dbフォルダー内で実行する必要があります。
Zeinab

56

以下のコマンドは私のために働いた

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

37

これは私のために働いた-(mongoシェルから)

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

カッコいい。osのインタープリターとしてmongoシェルを使用し、関数として「bash」コマンドを使用します。mongoがこのようにファイルツリーにアクセスできることすら知りませんでした。ありがとう!
レアハース

16

JSONファイルをインポートするときに以下のコマンドを使用します

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

4

次の2つの方法がうまく機能します。

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



1

このソリューションは、Windowsマシンに適用できます。

  1. MongoDBには、データを格納するためのデータディレクトリが必要です。デフォルトのパスはC:\data\dbです。データディレクトリがない場合は、C:ドライブに作成します。(追記: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は、必要に応じて任意の整数にすることができます

1
たくさん助けてくれました!おかげで
filipbarak

0

MS Windowsでは、mongoimportコマンドは、mongodbコマンドプロンプトからではなく、通常のWindowsコマンドプロンプトで実行する必要があります。


Unixでも同じです。mongoimportは、通常のターミナルからmongodとして実行する必要があります。
doel 2015年


0

MongoDBの場合mongoシェルコマンドを使用して、ファイルから(システム/ PCの特定の場所から)Json配列データを挿入します。以下のコマンドを実行している間、コマンドは1行である必要があります。

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

[{
"code": "visa",
"position": 1,
"description": "Visa",
"isVertualCard": false,
"comments": ""
},{
    "code": "mastercard",
    "position": 2,
    "description": "Mastercard",
    "isVertualCard": false,
    "comments": ""
}]

0

コマンドプロンプトを個別に開き、以下を確認します。

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.