删除文档

此页面使用以下mongo shell方法

此页面上的示例使用inventory收集。 要填充inventory收集,请运行以下命令:

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

删除所有文档

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

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

db.inventory.deleteMany({})

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

删除所有符合条件的文档

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

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

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

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

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

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

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

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

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

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

要删除最多一个与指定过滤器匹配的文档(即使多个文档可以与指定过滤器匹配),请使用db.collection.deleteOne()方法。

下面的示例删除状态为“ D”的第一个文档:

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

删除行为

索引

即使从集合中删除所有文档,删除操作也不会删除索引。

原子性

MongoDB中的所有写操作都是单个文档级别的原子操作。 有关MongoDB和原子性的更多信息,请参见原子性和事务

写确认

对于写入问题,您可以指定从MongoDB请求的写入操作的确认级别。 有关详细信息,请参见 写关注

另请参考:

译者:杨帅

校对:杨帅