如何删除 MongoDB 中所有的数据库?

32 浏览
0 Comments

如何删除 MongoDB 中所有的数据库?

我在我的MongoDB数据库中有一个数据库列表。如何删除所有数据库,除了localadminconfig之外的数据库?

\"enter

admin 更改状态以发布 2023年5月24日
0
0 Comments

我使用这个教程中的解决方案来解决这个问题。

我在我的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();
    }
}

0
0 Comments

您可以在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

0