MongoDBを使用する場合は、mongoimportを使用できます。 ドキュメントをコレクションにインポートします。 mongoimport 拡張JSON、CSV、またはTSVファイルからコンテンツをインポートするコマンドラインユーティリティです。インポートファイルはmongoexportによって作成された可能性があります またはその他のエクスポートユーティリティ。
この記事では、JSONファイルをMongoDBにインポートする例を紹介します。
例
pets.jsonという名前の次のJSONファイルがあるとします。 :
{ "_id" : 1, "name" : "Wag", "type" : "Dog" }
{ "_id" : 2, "name" : "Bark", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" } 次のコマンドは、JSONファイルをMongoDBにインポートします。
mongoimport --db=PetHotel --file=pets.json
この場合、インポートするコレクションを指定しなかったため、ファイルと同じ名前(pets)のコレクションが作成されました。 。
結果を確認する
コレクションを見てみましょう。
db.pets.find() 結果:
{ "_id" : 1, "name" : "Wag", "type" : "Dog" }
{ "_id" : 2, "name" : "Bark", "type" : "Dog" }
{ "_id" : 3, "name" : "Meow", "type" : "Cat" } ドキュメントが期待どおりにインポートされたことがわかります。
コレクション名を指定してください
--collectionを使用できます (または-c )ファイルをインポートするコレクションを指定するパラメーター。
--collectionの使用例を次に示します。 同じファイルを別のコレクションにインポートするためのパラメーター:
mongoimport --db=PetHotel --collection=pets2 --file=pets.json コレクションがまだ存在しない場合は、作成されます。すでに存在する場合、インポートの結果は使用しているモードによって異なります(これについては以下で詳しく説明します)。
インポートする前にコレクションを削除する
--dropを使用できます 作成/インポートしようとしているコレクションと同じ名前の既存のコレクションを削除するパラメータ。
pets2.jsonという2番目のファイルがあるとします。 、次のドキュメントを使用:
{ "_id" : 4, "name" : "Bubbles" }
{ "_id" : 5, "name" : "Hop", "type": "Kangaroo" }
そのドキュメントをpetsにインポートするとどうなりますか --dropを使用したコレクション オプション:
mongoimport --db=PetHotel --collection=pets --drop --file=pets2.json 出力:
2021-01-03T15:42:25.626+1000 connected to: mongodb://localhost/ 2021-01-03T15:42:25.640+1000 dropping: PetHotel.pets 2021-01-03T15:42:25.734+1000 2 document(s) imported successfully. 0 document(s) failed to import.
このメッセージは、コレクションが削除され、1つのドキュメントがインポートされたことを示しています。
コレクションを見てみましょう:
db.pets.find() 結果:
{ "_id" : 5, "name" : "Hop", "type" : "Kangaroo" }
{ "_id" : 4, "name" : "Bubbles" } 予想どおり、コレクションには2つの新しいドキュメントしかありません。
インポートモード
mongoimportで使用できるさまざまなインポートモードがあります 。これらのモードは、インポートしようとしているコレクションに一致するドキュメントがすでに存在する場合に何が起こるかを決定します。
モードは次のとおりです。
| モード | 説明 |
|---|---|
insert | これはデフォルトのモードです。このモードでは、インポートファイルからドキュメントが挿入されます。一致するドキュメントがコレクションにすでに存在する場合、エラーが発生します。一致するドキュメントとは、同じ一意のID(一致する_idなど)を持つドキュメントです。 フィールド)インポートファイルのドキュメントとして。 |
upsert | データベース内の既存のドキュメントを、インポートファイルの一致するドキュメントに置き換えます。他のすべてのドキュメントが挿入されます。 |
merge | インポートファイル内のドキュメントと一致する既存のドキュメントを新しいドキュメントとマージします。他のすべてのドキュメントが挿入されます。 |
delete | インポートファイル内のドキュメントと一致するデータベース内の既存のドキュメントを削除します。一致しないドキュメントは効果がありません。 |
mongoimportのインポートモードを参照してください 各モードの例については。
mongoimportを確認します
mongoimport MongoDBデータベースツールパッケージの一部です。 MongoDBデータベースツールは、MongoDBを操作するためのコマンドラインユーティリティのスイートです。
MongoDBデータベースツール/mongoimportを使用しているかどうかわからない場合 インストールされている場合は、ターミナルまたはコマンドプロンプトで次のコマンドを実行して確認してください。
mongoimport --version 持っている場合は、バージョン情報などが表示されます。持っていない場合は、MongoDB Webサイトにあるインストール手順を使用して、システムにインストールできます。
コマンドを実行する場所
mongoimportを実行する必要があることを忘れないでください システムのコマンドラインからのコマンド(新しいターミナルやコマンドプロンプトウィンドウなど)。
mongoから実行しないでください シェル。