删除操作从集合中删除文档。 MongoDB 提供了以下删除集合文档的方法:

  • [db.collection.deleteMany()](https://docs.mongodb.com/manual/reference/method/db.collection.deleteMany/#db.collection.deleteMany)
  • [db.collection.deleteOne()](https://docs.mongodb.com/manual/reference/method/db.collection.deleteOne/#db.collection.deleteOne)

您可以指定标准或过滤器,以标识要删除的文档。这些过滤器使用与读取操作相同的语法。

删除文档 - 图1

测试数据:

  1. db.inventory.insertMany( [
  2. { item: "journal", qty: 25, size: { h: 14, w: 21, uom: "cm" }, status: "A" },
  3. { item: "notebook", qty: 50, size: { h: 8.5, w: 11, uom: "in" }, status: "P" },
  4. { item: "paper", qty: 100, size: { h: 8.5, w: 11, uom: "in" }, status: "D" },
  5. { item: "planner", qty: 75, size: { h: 22.85, w: 30, uom: "cm" }, status: "D" },
  6. { item: "postcard", qty: 45, size: { h: 10, w: 15.25, uom: "cm" }, status: "A" },
  7. ] );

删除所有文档

要删除集合中的所有文档,请将空的过滤器文档{}传递给db.collection.deleteMany()方法。

以下示例从清单收集中删除所有文档:

  1. db.inventory.deleteMany({})

该方法返回具有操作状态的文档。有关更多信息和示例,请参见 deleteMany()。

删除所有符合条件的文档

您可以指定标准或过滤器,以标识要删除的文档。筛选器使用与读取操作相同的语法。

要指定相等条件,请在查询过滤器文档中使用表达式:

  1. { <field1>: <value1>, ... }

查询过滤器文档可以使用查询运算符以以下形式指定条件:

  1. { <field1>: { <operator1>: <value1> }, ... }

要删除所有符合删除条件的文档,请将过滤器参数传递给deleteMany()方法。

以下示例从状态字段等于“ A”的清单集合中删除所有文档:

  1. db.inventory.deleteMany({ status : "A" })

该方法返回具有操作状态的文档。有关更多信息和示例,请参见deleteMany()。

仅删除1个符合条件的文档

要删除最多一个与指定过滤器匹配的文档(即使多个文档可能与指定过滤器匹配),请使用db.collection.deleteOne()方法。
下面的示例删除状态为“ D”的第一个文档:

  1. db.inventory.deleteOne( { status: "D" } )