ドキュメントの削除
MongoCollection
オブジェクトで deleteOne()
メソッドを使用してコレクションから単一ドキュメントを削除できます。 このメソッドは、削除するドキュメントに一致するクエリフィルターを受け入れます。 フィルターを指定しない場合、MongoDB はコレクション内の最初のドキュメントを照合します。 deleteOne()
メソッドは、一致した最初のドキュメントのみを削除します。
このメソッドは、操作の結果として削除されたドキュメントの数などの情報を含むDeleteResult
のインスタンスを返します。
削除操作が失敗した場合、ドライバーは例外を発生させます。 特定の条件で発生する例外の種類の詳細については、このページの下部にリンクしているdeleteOne()
の API ドキュメントを参照してください。
例
次のスニペットは、 sample_mflix
データベースのmovies
コレクションから 1 つのドキュメントを削除します。 この例では、 eq()
フィルターを使用して、 title
がテキスト'The Garbage Pail Kids Movie'
と完全に一致する映画を照合します。
注意
この例では、接続 URI を使用して MongoDB のインスタンスに接続します。 MongoDB インスタンスへの接続の詳細については、「 接続ガイド 」を参照してください。
package usage.examples; import static com.mongodb.client.model.Filters.eq; 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 DeleteOne { 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 = eq("title", "The Garbage Pail Kids Movie"); try { DeleteResult result = collection.deleteOne(query); System.out.println("Deleted document count: " + result.getDeletedCount()); } catch (MongoException me) { System.err.println("Unable to delete due to an error: " + me); } } } }
この例を実行する際、 deleteOne()
への呼び出しで渡したクエリフィルターがドキュメントと一致し、それが削除されると、次のような出力が表示されます。
Deleted document count: 1
クエリフィルターがコレクション内のドキュメントと一致しない場合、 deleteOne()
を呼び出すとドキュメントは削除されず、次の結果が返されます。
Deleted document count: 0
このページで言及されているクラスとメソッドについて詳しくは、次の API ドキュメントを参照してください。