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