我的MongoDB中有一个数据库列表。如何删除除local
,admin
和config
以外的所有数据库?
答案 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();
}
}