MongoDB 删除文档学习笔记

在使用 MongoDB 数据库时,我们经常需要删除文档。本篇学习笔记将会介绍 MongoDB 删除文档的常用方法,并给出具体实例。

MongoDB 删除文档方法

MongoDB 提供了多种方式来删除文档,包括:

  • deleteOne():删除匹配条件的单个文档。
  • deleteMany():删除所有匹配条件的文档。
  • remove():删除匹配条件的单个文档(自 MongoDB 4.0 版本开始逐渐被淘汰,推荐使用 deleteOne())。

deleteOne()

deleteOne() 方法用于删除匹配条件的单个文档。如果有多个文档符合查询条件,只会删除第一个匹配到的文档。

语法如下:

jsCopy Code
db.collection.deleteOne( <filter>, { writeConcern: <document> } )

其中,<filter> 参数用于指定删除文档的条件。

例如,在 example 集合中,我们可以通过以下代码删除第一个 age 等于 20 的文档:

jsCopy Code
db.example.deleteOne({ age: 20 })

deleteMany()

deleteMany() 方法用于删除所有匹配条件的文档。

语法如下:

jsCopy Code
db.collection.deleteMany( <filter>, { writeConcern: <document> } )

例如,在 example 集合中,我们可以通过以下代码删除所有 age 等于 20 的文档:

jsCopy Code
db.example.deleteMany({ age: 20 })

remove()

remove() 方法用于删除匹配条件的单个文档。自 MongoDB 4.0 版本开始逐渐被淘汰,推荐使用 deleteOne() 方法。

语法如下:

jsCopy Code
db.collection.remove( <query>, { justOne: <boolean>, writeConcern: <document> } )

其中,<query> 参数用于指定删除文档的条件。

例如,在 example 集合中,我们可以通过以下代码删除第一个 age 等于 20 的文档:

jsCopy Code
db.example.remove({ age: 20 }, true)

实例

下面我们来举一个具体实例,假设有一个 students 集合,其中包含多个文档,每个文档都包含 nameage 字段。现在我们需要删除所有 age 大于等于 18 的文档。

我们可以使用 deleteMany() 方法来实现:

jsCopy Code
db.students.deleteMany({ age: { $gte: 18 }})

执行该命令后,所有符合条件的文档都将被删除。

注意:删除操作是不可逆的,请谨慎操作。建议在进行删除操作之前先进行数据备份。