dropDatabase
¶该dropDatabase
命令删除当前数据库,删除关联的数据文件。
该命令具有以下形式:
该命令带有以下可选字段:
领域 | 描述 |
---|---|
writeConcern | 可选的。表示要使用的写关注点的文档,如果大于
忽略使用默认/最小写关注
在副本集上发布时,如果指定的写关注导致的成员确认少于写关注
在分片群集上发布时,MongoDB会将指定的写入关注点转换
为
另请参阅行为。 |
该mongo
外壳还提供了辅助方法
db.dropDatabase()
。
此命令不会删除与当前数据库关联的
用户。要删除关联的用户,请dropAllUsersFromDatabase
在要删除的数据库中运行
命令。
在版本3.6中更改。
至少要dropDatabase
等到数据库中的所有集合删除都传播到大多数副本集成员为止(即,使用写关注点"majority"
)。
如果指定的写关注点需要少于大多数的确认,则该命令将使用写关注点
"majority"
。
如果指定的写关注点需要获得大多数人的认可,则该命令将使用指定的写关注点。
在分片群集上发布时,MongoDB会将指定的写入关注点转换
为
"majority"
。
警告
如果删除数据库并创建具有相同名称的新数据库,则必须:
mongos
实例和所有分片
mongod
成员(包括辅助成员);flushRouterConfig
在所有mongos
实例和所有分片mongod
成员(包括辅助成员)上使用命令
。这样可以确保mongos
和实例实例刷新其元数据缓存,包括新数据库的主碎片的位置
。
否则,您可能会丢失读取数据,并且可能不会将数据写入正确的分片。要恢复,您必须手动进行干预。
如果删除数据库并使用相同的名称创建新数据库,则必须重新启动所有mongos
实例,或者
在读取或写入该数据库之前flushRouterConfig
对所有mongos
实例使用
命令。这样可以确保mongos
实例刷新其元数据缓存,包括新数据库的主分片的位置。
否则,您可能会丢失读取数据,并且可能不会将数据写入正确的分片。要恢复,您必须手动进行干预。
该db.dropDatabase()
方法并为
在删除的数据库上打开或在删除的数据库中的集合上打开的所有变更流dropDatabase
创建一个无效事件。