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

时间:2018-07-25 14:16:39

标签: database mongodb nosql

我的MongoDB中有一个数据库列表。如何删除除localadminconfig以外的所有数据库?
enter image description here

2 个答案:

答案 0 :(得分:2)

您可以在org.apache.shiro.web.filter.AccessControlFilter shell中使用getDBNames()方法。

必须从Mongo() instance调用此方法。不幸的是,我认为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();
  }
})

答案 1 :(得分:1)

我使用此tutorial

修复了此解决方案

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