Skip to content

MongoDB - 删除数据库

本章解释了如何在 MongoDB 中永久删除整个数据库,该命令应极其谨慎地使用。

db.dropDatabase() 命令会删除当前数据库,同时移除所有相关的集合、文档和索引。

要使用此命令,您必须首先切换到您打算删除的数据库上下文。

// 1. 切换到目标数据库
use database_name_to_drop;
// 2. 执行删除命令
db.dropDatabase();
**严重警告:** 这是一项破坏性且不可逆的操作。数据库一旦被删除,如果没有事先备份,其数据将无法恢复。在任何环境中,尤其是在生产环境中执行此命令之前,请务必仔细核对数据库名称,并确保您有最新的备份。

首先,让我们查看现有的数据库。

> show databases
admin ...MB
config ...MB
local ...MB

现在,让我们创建一个临时数据库 temp_db 并将其删除。

> use temp_db
switched to db temp_db
> db.my_collection.insertOne({ message: "This is a test" })
{ acknowledged: true, insertedId: ObjectId(...) }
> show databases
admin ...MB
config ...MB
local ...MB
temp_db ...MB
> db.dropDatabase()
{ dropped: 'temp_db', ok: 1 }

最后,验证数据库是否已被删除。

> show databases
admin ...MB
config ...MB
local ...MB
  • 基于角色的访问控制 (RBAC): 在安全环境中,删除数据库的能力由特定的用户角色控制。数据库资源需要 dropDatabase 操作权限。此权限应仅授予管理员账户。
  • 生产环境: 手动删除生产数据库极其罕见且危险。此操作通常出现在用于设置或拆除开发或测试环境的自动化脚本中。
  • 优先备份: 在执行任何重大破坏性操作之前,请使用 mongodump 等工具进行备份。例如,mongodump --uri="<your-connection-string>" --archive="backup.gz" --gzip 命令可以创建您的数据库的完整备份。
  • 确认机制: 一些现代数据库客户端或脚本内置了确认步骤,要求您重新输入数据库名称以防止意外删除。这是您在自己的操作工作流中应采纳的良好实践。