我有一个MongoDB数据库列表,如何删除除
local
、admin
和config
之外的所有数据库?![enter image description here](https://istack.dev59.com/cxxE1.webp)
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
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();
}
}
db.getSiblingDB('Marks').dropDatabase()
。因此,你可以直接硬编码这些名称。 - Sergio Tulentsev