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