MongoDB
 Computer >> コンピューター >  >> プログラミング >> MongoDB

MongoDBのdeleteMany()メソッドで複数のドキュメントを削除する方法

MongoDBでは、deleteMany()メソッドを使うことで、条件に一致する複数のドキュメントを一度に削除できます。この記事では、実際のコマンド例をもとに、コレクションの作成から複数ドキュメントの削除までの手順をわかりやすく解説します。

1. サンプルコレクションの作成

まず、insertOne()メソッドを使って、複数のドキュメントを含むコレクションを作成しましょう。

> db.deleteMultipleDocumentsDemo.insertOne({"StudentFirstName":"Larry"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ce00b07bf3115999ed51214")
}
> db.deleteMultipleDocumentsDemo.insertOne({"StudentFirstName":"Chris"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ce00b0bbf3115999ed51215")
}
> db.deleteMultipleDocumentsDemo.insertOne({"StudentFirstName":"David"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ce00b0fbf3115999ed51216")
}
> db.deleteMultipleDocumentsDemo.insertOne({"StudentFirstName":"Bob"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ce00b12bf3115999ed51217")
}
> db.deleteMultipleDocumentsDemo.insertOne({"StudentFirstName":"Carol"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5ce00b18bf3115999ed51218")
}

2. 登録されたドキュメントの確認

find()メソッドを使うと、コレクション内のすべてのドキュメントを表示できます。まずは登録内容を確認しておきましょう。

> db.deleteMultipleDocumentsDemo.find();

上記のクエリを実行すると、次のような出力が得られます。

{ "_id" : ObjectId("5ce00b07bf3115999ed51214"), "StudentFirstName" : "Larry" }
{ "_id" : ObjectId("5ce00b0bbf3115999ed51215"), "StudentFirstName" : "Chris" }
{ "_id" : ObjectId("5ce00b0fbf3115999ed51216"), "StudentFirstName" : "David" }
{ "_id" : ObjectId("5ce00b12bf3115999ed51217"), "StudentFirstName" : "Bob" }
{ "_id" : ObjectId("5ce00b18bf3115999ed51218"), "StudentFirstName" : "Carol" }

3. deleteMany()で複数のドキュメントを削除する

複数のドキュメントを削除するには、deleteMany()メソッドに削除条件を渡します。ここでは$in演算子を使用して、「StudentFirstName」が「Larry」「David」「Carol」のいずれかに一致するドキュメントをまとめて削除します。

> db.deleteMultipleDocumentsDemo.deleteMany({StudentFirstName: {$in: ["Larry", "David", "Carol"]}});
{ "acknowledged" : true, "deletedCount" : 3 }

実行結果の「deletedCount」を見ると、3件のドキュメントが正常に削除されたことが確認できます。

4. 削除後のドキュメントを確認する

再度find()メソッドを実行して、削除後のコレクションの状態を確認してみましょう。

> db.deleteMultipleDocumentsDemo.find();

実行結果は以下の通りです。

{ "_id" : ObjectId("5ce00b0bbf3115999ed51215"), "StudentFirstName" : "Chris" }
{ "_id" : ObjectId("5ce00b12bf3115999ed51217"), "StudentFirstName" : "Bob" }

$in演算子で指定した「Larry」「David」「Carol」の3件が削除され、「Chris」と「Bob」の2件だけが残っていることがわかります。

まとめ

deleteMany()メソッドは、フィルタ条件に一致するすべてのドキュメントを一括削除できる便利なメソッドです。$in演算子と組み合わせれば、特定の値のリストに該当するドキュメントを効率的に削除できます。なお、単一のドキュメントのみを削除したい場合はdeleteOne()メソッドを使用してください。条件を誤ると意図しないデータまで消えてしまうため、本番環境で実行する前には必ずfind()で対象ドキュメントを確認することをおすすめします。

  1. JavaでMongoDBコレクション内の複数のドキュメントを一括更新する方法

    MongoDBでは、updateMany()メソッドを使うことで、指定した条件に一致するコレクション内のすべてのドキュメントを一度に更新できます。1件だけを更新するupdateOne()とは異なり、フィルターに合致した全件が更新対象になる点が大きな特徴です。 基本構文 db.COLLECTION_NAME.updateMany(<filter>, <update>) Javaから利用する場合は、com.mongodb.client.MongoCollectionインターフェースが同名のupdateMany()メソッドを提供しています。第1引数に検索条件(フィルター)、第

  2. 【Java入門】MongoDBのコレクションから複数ドキュメントを一括削除する方法(deleteManyの使い方)

    JavaからMongoDBを操作する際、com.mongodb.client.MongoCollectionインターフェースが提供するdeleteMany()メソッドを使用すると、コレクション内の複数のドキュメントを一度に削除できます。このメソッドを呼び出すときには、削除対象を特定するためのフィルター(検索条件)を引数として渡す必要があります。フィルターに一致したすべてのドキュメントがまとめて削除される仕組みです。deleteMany()メソッドのポイントdeleteMany()は、指定した条件に一致する「すべて」のドキュメントを削除します。もし1件だけ削除したい場合は、代わりにdeleteO