Docs 主页 → 开发应用程序 → MongoDB Manual
删除
定义
drop
drop
命令可从数据库中删除整个集合。
语法
该命令的语法如下:
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()
变更流 创建 无效 。删除集合将删除其关联的区域/标记范围。
从 MongoDB5 0开始。如果您尝试从 删除 管理员数据库 或
drop
db.collection.drop()
配置数据库 中的集合,则 、mongos
命令和 方法会返回错误。要删除这些集合,请连接到 配置服务器 并在其中运行命令。
资源锁定
版本 4.2 中进行了更改。
drop
在操作期间获得指定集合的独占锁。对集合的所有后续操作都必须等到drop
释放该锁。
MongoDB 4之前的版本。 2 、 drop
获得了对父数据库的独占锁,阻止对数据库及其所有集合的所有操作,直到操作完成。