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