Docs Menu
Docs Home
/ / /
Java Sync Driver
/ /

複数のドキュメントの削除

MongoCollectionオブジェクトで deleteMany()メソッドを呼び出すと、1 回の操作でコレクションから複数のドキュメントを削除できます。

削除するドキュメントを指定するには、削除するドキュメントに一致するクエリフィルターを渡します。 空のドキュメントを指定すると、MongoDB はコレクション内のすべてのドキュメントを照合し、それらを削除します。 deleteMany()を使用してコレクション内のすべてのドキュメントを削除できますが、パフォーマンスを向上させるには、代わりにdrop()メソッドを使用することを検討してください。

削除に成功すると、このメソッドはDeleteResultのインスタンスを返します。 DeleteResultインスタンスでgetDeletedCount()メソッドを呼び出すと、削除されたドキュメントの数などの情報を取得できます。

削除操作が失敗した場合、ドライバーは例外を発生させます。 特定の条件で発生する例外の種類の詳細については、このページの下部にリンクしているdeleteMany()の API ドキュメントを参照してください。

次のスニペットは、 sample_mflixデータベース内のmoviesコレクションから複数のドキュメントを削除します。

deleteMany()メソッドに渡されるクエリフィルターは、 imdbサブドキュメント内に1.9未満のratingを含むすべての映画ドキュメントと一致します。

注意

この例では、接続 URI を使用して MongoDB のインスタンスに接続します。 MongoDB インスタンスへの接続の詳細については、「 接続ガイド 」を参照してください。

// Deletes multiple documents from a collection by using the Java driver
package usage.examples;
import static com.mongodb.client.model.Filters.lt;
import org.bson.Document;
import org.bson.conversions.Bson;
import com.mongodb.MongoException;
import com.mongodb.client.MongoClient;
import com.mongodb.client.MongoClients;
import com.mongodb.client.MongoCollection;
import com.mongodb.client.MongoDatabase;
import com.mongodb.client.result.DeleteResult;
public class DeleteMany {
public static void main(String[] args) {
// Replace the uri string with your MongoDB deployment's connection string
String uri = "<connection string uri>";
try (MongoClient mongoClient = MongoClients.create(uri)) {
MongoDatabase database = mongoClient.getDatabase("sample_mflix");
MongoCollection<Document> collection = database.getCollection("movies");
Bson query = lt("imdb.rating", 1.9);
try {
// Deletes all documents that have an "imdb.rating" value less than 1.9
DeleteResult result = collection.deleteMany(query);
// Prints the number of deleted documents
System.out.println("Deleted document count: " + result.getDeletedCount());
// Prints a message if any exceptions occur during the operation
} catch (MongoException me) {
System.err.println("Unable to delete due to an error: " + me);
}
}
}
}

この例を実行すると、 deleteMany()への呼び出し中に削除されたドキュメントの数を報告する出力が表示されます。

Deleted document count: 4

Tip

Legacy API

レガシー API を使用している場合は、 FAQ ページ を参照して、このコード例に加える必要がある変更を確認してください。

このページで言及されているクラスとメソッドについて詳しくは、次の API ドキュメントを参照してください。

  • deleteMany()

  • DeleteResult

  • drop()

戻る

deleteOne