删除
定义
drop
drop
命令可从数据库中删除整个集合。
兼容性
此命令可用于以下环境中托管的部署:
MongoDB Atlas:用于云中 MongoDB 部署的完全托管服务
注意
所有 MongoDB Atlas 集群都支持此命令。有关所有命令的信息,请参阅不支持的命令。
MongoDB Enterprise:基于订阅、自我管理的 MongoDB 版本
MongoDB Community:源代码可用、免费使用且可自行管理的 MongoDB 版本
语法
该命令的语法如下:
db.runCommand( { drop: <collection_name>, writeConcern: <document>, comment: <any> } )
命令字段
该命令接受以下字段:
字段 | 说明 |
---|---|
drop | 要删除的集合的名称。 |
writeConcern | 可选。一份表达 在分片集群上发出时, |
comment | 可选。用户提供的待附加到该命令的注释。设置后,该注释将与该命令的记录一起出现在以下位置:
注释可以是任何有效的 BSON 类型(字符串、整型、对象、数组等)。 |
mongosh
提供了等效的辅助方法db.collection.drop()
。
行为
从MongoDB 5.0开始,如果传递了无法识别的参数,
drop
命令和db.collection.drop()
方法将引发错误。此命令还会删除与删除的集合关联的所有索引。
在删除集合之前,
db.collection.drop()
方法和drop
命令会中止在目标集合上任何正在进行的索引构建。对于副本集或分片副本集,中止主节点上的索引不会同时中止从节点索引构建。MongoDB 尝试中止主节点上指定索引正在进行的构建。如果成功,则会创建关联的
abort
oplog 条目。从节点如果有正在进行的构建的副本,则在提交或中止索引构建之前会等待来自主节点的提交或中止 oplog 条目。drop
命令及其助手 为在删除的集合上打开的任何 创建 无效db.collection.drop()
Change Streams。删除集合将删除其关联的区域/标记范围。
从MongoDB5.0 开始,如果您尝试从 删除 管理员数据库
drop
或db.collection.drop()
配置数据库 中的集合,mongos
命令和 方法会返回错误。要删除这些集合,请连接到配置服务器并在其中运行命令。