mongoimport
現在 バージョン100.0.0では、インポートされたファイルに基づいてMongoDB内のドキュメントを削除できます。これを行うには、delete
を使用します モード。
delete
を使用する場合 モード、インポートされたドキュメントが同じ_id
を持っている場合 インポート先のコレクション内の既存の値として、既存のドキュメントが削除されます。
別の1つまたは複数のフィールド(_id
以外)を指定することもできます フィールド)必要に応じて一致するフィールドになります。
例
pets
というコレクションがあるとします。 次のドキュメントが含まれています:
db.pets.find()
結果:
{ "_id" : 1, "name" : "Wag", "type" : "Dog", "weight" : 20 } { "_id" : 2, "name" : "Bark", "type" : "Dog", "weight" : 10 } { "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 } { "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 } { "_id" : 5, "name" : "Bruce", "type" : "Bat", "weight" : 3 }
そして、pets.json
というJSONファイルがあります。 :
{"_id":1,"name":"Wag","type":"Dog"} {"_id":2,"name":"Fluffy","type":"Cat","weight":10} {"_id":9,"name":"Hop","type":"Kangaroo","weight":60}
次のコマンドは、delete
を使用してJSONファイルをインポートします モード:
mongoimport --db=PetHotel --collection=pets --mode=delete --file=data/pets.json
このコマンドを実行すると、コレクション内の一致するドキュメントがすべて削除されます。
結果を確認する
コレクションを見てみましょう。
db.pets.find()
結果:
{ "_id" : 3, "name" : "Meow", "type" : "Cat", "weight" : 7 } { "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 } { "_id" : 5, "name" : "Bruce", "type" : "Bat", "weight" : 3 }
最初の2つのドキュメントが削除されていることがわかります。 _id
が原因で削除されました 値が_id
と一致しました 既存のドキュメントの値。これは、他の詳細が必ずしも一致するとは限らないにもかかわらずです(ドキュメント2など)。
また、インポートしたファイルには_id
のドキュメントが含まれていました 9のですが、一致するドキュメントがなかったため、そのドキュメントは削除されませんでした。
アップサートフィールドの変更/秒
--upsertFields
を使用できます _id
以外のフィールドを指定するパラメータ 対戦相手。このパラメータで複数のフィールドを使用する場合は、コンマ区切りのリストとして渡します。
pets2.json
という別のJSONファイルがあるとします。 次のようになります:
{ "name" : "Meow", "type" : "Cat", "weight" : 7 } { "name" : "Bubbles", "type" : "Fish", "weight" : 3 }
このドキュメントには_id
は含まれていません したがって、各ドキュメントを一意に識別する他のフィールドと照合する必要があります。この場合、name
を使用できます およびtype
田畑。
したがって、次のmongoimport
を使用できます。 コマンド:
mongoimport --db=PetHotel --collection=pets --mode=delete --upsertFields=name,type --file=data/pets2.json
それでは、コレクションをもう一度確認しましょう:
db.pets.find()
結果:
{ "_id" : 4, "name" : "Scratch", "type" : "Cat", "weight" : 8 } { "_id" : 5, "name" : "Bruce", "type" : "Bat", "weight" : 3 }
そのペットがMongoDBコレクションとインポートされたドキュメントの両方に存在したため、猫のニャーが削除されました。
魚の泡には一致するドキュメントがなかったため、そのドキュメントには何も削除されませんでした。
mongoimport
を確認します
mongoimport
MongoDBデータベースツールパッケージの一部です。 MongoDBデータベースツールは、MongoDBを操作するためのコマンドラインユーティリティのスイートです。
MongoDBデータベースツール/mongoimport
を使用しているかどうかわからない場合 インストールされている場合は、ターミナルまたはコマンドプロンプトで次のコマンドを実行して確認してください。
mongoimport --version
持っている場合は、バージョン情報などが表示されます。持っていない場合は、MongoDB Webサイトにあるインストール手順を使用して、システムにインストールできます。
コマンドを実行する場所
mongoimport
を実行する必要があることを忘れないでください システムのコマンドラインからのコマンド(新しいターミナルやコマンドプロンプトウィンドウなど)。
mongo
から実行しないでください シェル。