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から実行しないでください シェル。