現在MongoDB
を学習しようとしていますが、この問題の解決策を見つけるのに苦労しています。 mongoimport
コマンドを実行すると、次のエラーが発生します。
~ mongoimport --Host localhost --port 27017 --db test --collection people --file ~/Downloads/mongodb-consultas.json --jsonArray
2015-09-27T20:46:03.228-0600 [........................] test.people 0.0 B/684.2 KB (0.0%)
2015-09-27T20:46:03.745-0600 Failed: error connecting to db server: no reachable servers
2015-09-27T20:46:03.745-0600 imported 0 documents
localhost
を127.0.0.1
に置き換えたところ、次のエラーが発生しました。
~ mongoimport --Host 127.0.0.1 --port 27017 --db test --collection people --file ~/Downloads/mongodb-consultas.json --jsonArray
2015-09-28T15:15:42.047-0600 connected to: 127.0.0.1:27017
2015-09-28T15:15:42.049-0600 Failed: error reading separator after document #1: bad JSON array format - found no opening bracket '[' in input source
2015-09-28T15:15:42.049-0600 imported 0 documents
インポートしようとしているドキュメントは、MongoDBチュートリアルから取得したため破損しておらず、他のユーザーのために機能しています。
MongoDBシェルのバージョンは3.0.6です。
コマンドラインでMongoDB
を実行して、mongod
サーバーを作成しました。コマンドmongo
も問題なく実行されます。
私のファイアウォールはMongoDBの着信接続を許可します。
Localhostがコマンドプロンプトからtelnetを取得しているかどうかを確認します。
$ telnet localhost 27017
接続されない場合は、マシンの/etc/hosts
を確認してください。
127.0.0.1 localhost
としてコメント化されていないエントリが必要です
私はエラーを経験してチェックアウトしましたが、問題はmongoimport構文で抵抗されます。 mongoimportシェルは(.json
)ファイルの場所を見つけることができません。
また、 -jsonArray のような間違いもあります。
MongoDB BOL
-jsonArrayのように、mongoexport
の出力を変更して、エクスポートの内容全体を単一のJSON
配列として書き込みます。デフォルトでは、mongoexport
は、JSON
ドキュメントごとに1つのMongoDB
ドキュメントを使用してデータを書き込みます。
注:-単一の
import
配列内の複数のMongoDB
ドキュメントで表現されたデータのJSON
を受け入れます。 16 MB以下のインポートに制限されています。
単純なmongoimportの構文はそのようになります
mongoimport -d databasename -c collectionname (File Location of json file.json)
例
mongoimport -d test -c zips C:\MongoDBDBA\zips.json
2018-02-07T08:32:31.084+0300 connected to: localhost
2018-02-07T08:32:31.532+0300 imported 29353 documents
上記のmongoimport
構文では、データベース名はtest
、コレクション名はzips
、C:\MongoDBDBA\zips.json
は(.json
)ファイルの場所です。
ローカルホストとポート番号27017の例
localhost
を使用する場合、デフォルトでport
number 27017
in mongoimport
を使用すると、構文は次のようになります。
mongoimport --Host localhost --port 27017 -d blog -c posts C:\MongoDBDBA\posts.json
2018-02-07T10:48:54.340+0300 connected to: localhost:27017
2018-02-07T10:48:56.333+0300 [########################] blog.posts 33.9MB/33.9MB (100.0%)
2018-02-07T10:48:56.345+0300 [########################] blog.posts 33.9MB/33.9MB (100.0%)
2018-02-07T10:48:56.346+0300 imported 1000 documents
ここで、上記の構文では、blog
はデータベース名、コレクション名はposts
です。
最も重要な注意:-
mongoimport
をシステムコマンドラインから実行してくださいではなくmongo Shell
。
あなたのさらなる参考のために ここ
あなたはそのJSONファイルを示すことができますか?エラーごとに「開始ブラケット '['が見つかりませんでした」mongoimportは開始ブラケットを見つけることができません。したがって、JSON全体を[...]で囲んでから、うまくいけばうまくいくでしょう。
免責事項:非常に新人MongoDBA
私の推測はドキュメントのサイズでしょう
"MongoDB Limits and Thresholds" によると
BSONドキュメントサイズ
BSONドキュメントの最大サイズは16メガバイトです。
最大ドキュメントサイズは、1つのドキュメントがRAM、または転送中に過剰な帯域幅を使用できないことを保証します。最大サイズより大きいドキュメントを格納するために、MongoDBはGridFS APIを提供します。 GridFSの詳細については、mongofilesおよびドライバーのドキュメントを参照してください。
ドキュメントの終わりの検索がタイムアウトした可能性があります。
bsondump ファイルをjsonファイルに変換し、内容を確認してください。ただし、忠実性が失われるため、結果のJSONをインポートしないでください。
mongoimportを使用して、MongoDBコレクションにインポートされているjsonドキュメントを検証してください
上記のエラーの説明によると、mongoimportツールがドキュメントをmongoコレクションにインポートできなかったため、jsonファイルが無効のようです