如何批量删除符合特定条件的MongoDB数据库
MongoDB批量筛选删除数据库操作方案
操作前请确认你已拥有MongoDB的管理员权限,且提前完成全量数据备份,库删除操作不可回滚。
步骤1:预览待删除数据库列表
先执行以下命令筛选出所有名称包含recommend的数据库,核对列表确认没有需要保留的资源:
// 输出所有符合筛选条件的数据库名 db.adminCommand('listDatabases').databases .map(dbItem => dbItem.name) .filter(dbName => dbName.includes('recommend'))
步骤2:执行批量删除
确认列表无误后执行以下脚本完成批量删除,脚本默认跳过admin、local、config三个系统内置库,避免影响MongoDB集群正常运行:
db.adminCommand('listDatabases').databases.forEach(dbItem => { const dbName = dbItem.name // 匹配规则可按需修改 if (!dbName.includes('recommend')) return // 跳过系统库 if (['admin', 'local', 'config'].includes(dbName)) return // 执行删库 db.getSiblingDB(dbName).dropDatabase() print(`Successfully dropped database: ${dbName}`) })
自定义筛选规则
如果需要调整匹配规则,修改if (!dbName.includes('recommend'))对应的判断逻辑即可,比如:
- 匹配名称前缀为
recommend_的库:if (!dbName.startsWith('recommend_')) - 用正则匹配名称后缀为
_recommend的库:if (!/recommend$/.test(dbName))
警告:每次修改匹配规则后,都需要先重新执行步骤1的预览命令,确认待删除列表正确后再执行删除操作。
内容的提问来源于stack exchange,提问作者LF-DevJourney
相关产品推荐
相关产品推荐

