Docs 菜单
Docs 主页
/ / /
Kotlin 协程
/ /

删除文档

您可以使用MongoCollection对象上的 deleteOne()方法从collection中删除单个文档。 该方法接受与要删除的文档匹配的查询筛选器。 如果不指定筛选器,MongoDB 将匹配collection中的第一个文档。deleteOne()方法仅删除第一个匹配的文档。

DeleteResult此方法返回一个实例,其中包含由于该操作而删除的文档数量等信息。

如果删除操作失败,驱动程序会引发异常。 有关特定条件下引发的异常类型的更多信息,请参阅本页底部链接的deleteOne()的 API 文档。

以下代码片段从sample_mflix数据库的moviescollection中删除单个文档。该示例使用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

如果查询筛选器与collection中的文档不匹配,则调用deleteOne()不会删除任何文档并返回以下内容:

Deleted document count: 0

有关此页面上提及的类和方法的更多信息,请参阅以下 API 文档:

  • DeleteOne()

  • DeleteResult

  • eq()

后退

删除