web-dev-qa-db-ja.com

mongoimportエラー-失敗:データベースサーバーへの接続エラー:到達可能なサーバーがありません

現在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

localhost127.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の着信接続を許可します。

1
German

Localhostがコマンドプロンプトからtelnetを取得しているかどうかを確認します。

$ telnet localhost 27017

接続されない場合は、マシンの/etc/hostsを確認してください。

127.0.0.1 localhostとしてコメント化されていないエントリが必要です

1
Rajeev Asthana

私はエラーを経験してチェックアウトしましたが、問題は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、コレクション名はzipsC:\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

あなたのさらなる参考のために ここ

1

あなたはそのJSONファイルを示すことができますか?エラーごとに「開始ブラケット '['が見つかりませんでした」mongoimportは開始ブラケットを見つけることができません。したがって、JSON全体を[...]で囲んでから、うまくいけばうまくいくでしょう。

0
Gagan Sidhu

免責事項:非常に新人MongoDBA

私の推測はドキュメントのサイズでしょう

"MongoDB Limits and Thresholds" によると

BSONドキュメントサイズ

BSONドキュメントの最大サイズは16メガバイトです。

最大ドキュメントサイズは、1つのドキュメントがRAM、または転送中に過剰な帯域幅を使用できないことを保証します。最大サイズより大きいドキュメントを格納するために、MongoDBはGridFS APIを提供します。 GridFSの詳細については、mongofilesおよびドライバーのドキュメントを参照してください。

ドキュメントの終わりの検索がタイムアウトした可能性があります。

bsondump ファイルをjsonファイルに変換し、内容を確認してください。ただし、忠実性が失われるため、結果のJSONをインポートしないでください。

0
RolandoMySQLDBA

mongoimportを使用して、MongoDBコレクションにインポートされているjsonドキュメントを検証してください

上記のエラーの説明によると、mongoimportツールがドキュメントをmongoコレクションにインポートできなかったため、jsonファイルが無効のようです

0
Rubin Porwal