Delete Documents
MongoDB Shell 提供以下方法从集合中删除文档:
要删除多个文档,请使用
db.collection.deleteMany()
。要删除单个文档,请使用
db.collection.deleteOne()
。
本页的示例参考了 Atlas 示例数据集。您可以创建一个免费的 Atlas 集群,并用示例数据填充该集群,以遵循这些示例。要了解更多信息,请参阅开始使用 Atlas。
删除所有文档
要删除集合中的所有文档,请将空的过滤器文档 {}
传递到 db.collection.deleteMany()
方法。
例子
要删除 sample_mflix.movies
集合中的所有文档:
use sample_mflix db.movies.deleteMany({})
该方法返回一个包含操作状态的文档。有关更多信息和示例,请参阅 deleteMany()
。
注意
要删除大型集合中的所有文档,请使用 db.collection.drop()
方法删除。重新创建集合可能比使用 db.collection.deleteMany()
方法删除文档具有更快的性能。重新创建集合时,还必须重新创建任何指定的集合参数,例如集合索引。
删除符合条件的所有文档
您可以指定条件或过滤器来标识要删除的文档。过滤器使用与读取操作相同的语法。
要指定相等条件,请在查询筛选器文档中使用<field>:<value>
表达式:
要删除所有符合删除条件的文档,请将过滤器参数传递给 deleteMany()
方法。
例子
要删除 sample_mflix.movies
集合中的所有文档,其中 title
等于 "Titanic"
:
use sample_mflix db.movies.deleteMany( { title: "Titanic" } )
该方法返回一个包含操作状态的文档。有关更多信息和示例,请参阅 deleteMany()
。
仅删除一个符合条件的文档
要删除与指定过滤器匹配的最多单个文档(即使可能有多个文档与指定过滤器匹配),请使用 db.collection.deleteOne()
方法。
例子
要从 sample_mflix.movies
集合中删除第一个在其 cast
数组包含 "Brad Pitt"
的文档:
use sample_mflix db.movies.deleteOne( { cast: "Brad Pitt" } )
注意
MongoDB 保留文档的自然排序顺序。这种排序属于内部实现特性,您不应该依赖其中的任何特定结构。要了解更多信息,请参阅自然顺序。
删除行为
要进一步了解删除文档的具体行为,请参阅行为。
了解详情
要查看有关文档删除的其他示例,请参阅以下方法对应的页面:
要查看删除文档的所有可用方法,请参阅删除方法。