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