MongoDB 删除文档

在本教程中,我们将学习如何从集合中删除文档。remove()方法用于从 MongoDB 中的集合中删除文档。

remove()方法的语法:

db.collection_name.remove(delete_criteria)

要了解如何在 MongoDB 命令中指定条件,请参阅本教程: MongoDB 查询文档

使用remove()方法删除文档

假设我的 MongoDB 数据库中有一个名为beginnersbookdb的集合studentsstudents集合中的文档是:

> db.students.find().pretty()
{
        "_id" : ObjectId("59bcecc7668dcce02aaa6fed"),
        "StudentId" : 1001,
        "StudentName" : "Steve",
        "age" : 30
}
{
        "_id" : ObjectId("59bcecc7668dcce02aaa6fef"),
        "StudentId" : 3333,
        "StudentName" : "Rick",
        "age" : 35
}

现在我想删除这个学生 ID 等于 3333 的学生。要做到这一点,我会使用remove()方法编写一个命令,如下所示:

db.students.remove({"StudentId": 3333})

输出:

WriteResult({ "nRemoved" : 1 })

验证文档是否实际删除。键入以下命令:

db.students.find().pretty()

它将列出学生集合的所有文档。

以下是上述所有步骤的屏幕截图:

MongoDB 删除文档

如何只删除一个符合条件的文档?

当集合中存在多个符合条件的文档时,如果运行remove命令,则将删除所有这些文档。但是,有一种方法可以将删除限制为仅一个文档,这样即使有更多文档符合删除条件,也只会删除一个文档。

db.collection_name.remove(delete_criteria, justOne)

这里justOne是一个布尔参数,只取 1 和 0,如果你给 1,那么它会将文档删除限制为只有 1 个文档。这是一个可选参数,如上所述,我们使用remove()方法而不使用此参数。

例如,我在集合中有以下记录。

> db.walkingdead.find().pretty()
{
        "_id" : ObjectId("59bf280cb8e797a22c654229"),
        "name" : "Rick Grimes",
        "age" : 32,
        "rname" : "Andrew Lincoln"
}
{
        "_id" : ObjectId("59bf2851b8e797a22c65422a"),
        "name" : "Negan",
        "age" : 35,
        "rname" : "Jeffrey Dean Morgan"
}
{
        "_id" : ObjectId("59bf28a5b8e797a22c65422b"),
        "name" : "Daryl Dixon",
        "age" : 32,
        "rname" : "Norman Reedus"
}

假设我想删除年龄等于 32 的文档。此集合中有两个文档符合此条件。但是,为了将删除限制为 1,我们将justOne参数设置为true

db.walkingdead.remove({"age": 32}, 1)

输出:如您所见,只有一个文档被删除。

WriteResult({ "nRemoved" : 1 })

MongoDB 删除文档

删除所有文档

如果要从集合中删除所有文档但不想删除集合本身,则可以使用remove()方法,如下所示:

db.collection_name.remove({})

如果您想删除该集合以及所有文档,请参阅本指南:MongoDB 删除集合

赞(0)

评论 抢沙发

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址