MongoDB 删除文档学习笔记
在使用 MongoDB 数据库时,我们经常需要删除文档。本篇学习笔记将会介绍 MongoDB 删除文档的常用方法,并给出具体实例。
MongoDB 删除文档方法
MongoDB 提供了多种方式来删除文档,包括:
- deleteOne():删除匹配条件的单个文档。
- deleteMany():删除所有匹配条件的文档。
- remove():删除匹配条件的单个文档(自 MongoDB 4.0 版本开始逐渐被淘汰,推荐使用 deleteOne())。
deleteOne()
deleteOne() 方法用于删除匹配条件的单个文档。如果有多个文档符合查询条件,只会删除第一个匹配到的文档。
语法如下:
jsCopy Codedb.collection.deleteOne(
<filter>,
{
writeConcern: <document>
}
)
其中,<filter>
参数用于指定删除文档的条件。
例如,在 example
集合中,我们可以通过以下代码删除第一个 age 等于 20 的文档:
jsCopy Codedb.example.deleteOne({ age: 20 })
deleteMany()
deleteMany() 方法用于删除所有匹配条件的文档。
语法如下:
jsCopy Codedb.collection.deleteMany(
<filter>,
{
writeConcern: <document>
}
)
例如,在 example
集合中,我们可以通过以下代码删除所有 age 等于 20 的文档:
jsCopy Codedb.example.deleteMany({ age: 20 })
remove()
remove() 方法用于删除匹配条件的单个文档。自 MongoDB 4.0 版本开始逐渐被淘汰,推荐使用 deleteOne() 方法。
语法如下:
jsCopy Codedb.collection.remove(
<query>,
{
justOne: <boolean>,
writeConcern: <document>
}
)
其中,<query>
参数用于指定删除文档的条件。
例如,在 example
集合中,我们可以通过以下代码删除第一个 age 等于 20 的文档:
jsCopy Codedb.example.remove({ age: 20 }, true)
实例
下面我们来举一个具体实例,假设有一个 students
集合,其中包含多个文档,每个文档都包含 name
和 age
字段。现在我们需要删除所有 age
大于等于 18 的文档。
我们可以使用 deleteMany() 方法来实现:
jsCopy Codedb.students.deleteMany({ age: { $gte: 18 }})
执行该命令后,所有符合条件的文档都将被删除。
注意:删除操作是不可逆的,请谨慎操作。建议在进行删除操作之前先进行数据备份。