删除文档
您可以使用以下方法从集合中删除单个文档:deleteOne()
方法用于在 MongoCollection
对象上。该方法接受一个查询过滤器,用于匹配您要删除的文档。如果您不指定过滤器,MongoDB 将匹配集合中的第一个文档。deleteOne()
方法仅删除第一个匹配的文档。
此方法返回一个 DeleteResult
实例,其中包含有关操作结果的信息,包括删除了多少个文档。
如果您的删除操作失败,驱动程序将抛出异常。有关在特定条件下抛出的异常类型的更多信息,请参阅此页底部链接的 deleteOne()
API 文档。
示例
以下代码片段从 sample_mflix
数据库的 movies
集合中删除单个文档。示例使用 eq()
过滤器匹配标题完全匹配文本 '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 文档