如何删除 MongoDB 中所有的数据库?
如何删除 MongoDB 中所有的数据库?
我在我的MongoDB数据库中有一个数据库列表。如何删除所有数据库,除了local
、admin
和config
之外的数据库?
admin 更改状态以发布 2023年5月24日
我使用这个教程中的解决方案来解决这个问题。
我在我的mongo shell中运行了这段代码:
var dbs = db.getMongo().getDBNames() for(var i in dbs){ db = db.getMongo().getDB( dbs[i] ); if (db.getName() !== 'admin' && db.getName() !== 'local') { print( "dropping db " + db.getName() ); db.dropDatabase(); } }
您可以在mongo
shell中使用getDBNames()
方法。
这个方法必须从Mongo()
实例中调用。不幸的是,我认为getDBNames()
方法没有被记录。
在获取数据库名称之后,您可以循环遍历它们,使用类似以下代码来删除不需要的数据库:
Mongo().getDBNames().forEach(function(x) { // loop through all the database names if (['admin', 'config', 'local'].indexOf(x) < 0) { // drop database if it's not admin, config, or local Mongo().getDB(x).dropDatabase(); } })
例如:
> show dbs admin 0.000GB config 0.000GB local 0.001GB test 0.000GB test2 0.000GB test3 0.000GB > Mongo().getDBNames().forEach(function(x) { ... if (['admin', 'config', 'local'].indexOf(x) < 0) { ... Mongo().getDB(x).dropDatabase(); ... } ... }) > show dbs admin 0.000GB config 0.000GB local 0.001GB