dropDatabase

在本页面

Definition

该命令具有以下形式:

{ dropDatabase: 1, writeConcern: <document>}

该命令具有以下可选字段:

Field Description
writeConcern 可选的。表示drop命令的write concern的文档。省略使用默认的写关注。

mongo shell 还提供了辅助方法db.dropDatabase()

Behavior

Locks

从版本 3.6 开始,该操作在删除数据库中的集合时将获得排他(X)数据库锁,而在删除当前为空的数据库时将获得全局锁。

User Management

在 2.6 版中更改:此命令不会删除与当前数据库关联的users。要删除关联的用户,请在要删除的数据库中运行dropAllUsersFromDatabase命令。

副本集和分片群集

在版本 3.6 中更改:dropDatabaseawait 直到数据库中的所有集合删除都传播到大多数副本集成员为止。

Warning

如果删除数据库并创建具有相同名称的新数据库,则必须重新启动所有mongos实例,或者在所有mongos实例上使用flushRouterConfig命令,然后再读取或写入该数据库。此操作可确保mongos实例刷新其元数据缓存,包括新数据库的primary shard的位置。否则,mongos可能会丢失读取数据并将数据写入错误的分片。

Example

mongo shell 中的以下示例使用use <database>操作将当前数据库切换到temp数据库,然后使用dropDatabase命令删除temp数据库:

use temp
db.runCommand( { dropDatabase: 1 } )
首页