删除文档
此页面使用以下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请求的写入操作的确认级别。 有关详细信息,请参见 写关注。
另请参考:
译者:杨帅
校对:杨帅
参见
原文 - Delete Documents