MongoDB soltar cada base de datos


Me gustaría saber si hay un comando para soltar todas las bases de datos de mi MongoDB?

Sé que si quiero soltar solo una datatable, solo necesito escribir el nombre de la base de datos como el código a continuación, pero no quiero tener que especificarlo.

mongo DB_NAME --eval 'db.dropDatabase();'
 76
Author: vaultah, 2011-06-16

7 answers

Puede crear un bucle javascript que haga el trabajo y luego ejecutarlo en la mongoconsola.

var dbs = db.getMongo().getDBNames()
for(var i in dbs){
    db = db.getMongo().getDB( dbs[i] );
    print( "dropping db " + db.getName() );
    db.dropDatabase();
}

Guárdelo en dropall.js y luego ejecutar:

mongo dropall.js
 116
Author: ALoR,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-17 11:41:12

Prueba este comando:

mongo --quiet --eval 'db.getMongo().getDBNames().forEach(function(i){db.getSiblingDB(i).dropDatabase()})'
 74
Author: kev,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2013-06-04 01:04:20

También puedes hacer esto con un simple comando mongo:

db.adminCommand("listDatabases").databases.forEach( function (d) {
    if (d.name != "local" && d.name != "admin"  && d.name != "apiomat"  && d.name != "config")
        db.getSiblingDB(d.name).dropDatabase();
 })
 12
Author: Andreas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-06-20 10:31:34

Puedes hacerlo fácilmente a través del controlador oficial de c#:

var _mongoServer = MongoServer.Create("mongodb://localhost:27020");

var names = _mongoServer.GetDatabaseNames();
foreach (var name in names)
{
   _mongoServer.DropDatabase(name);
}
 4
Author: Andrew Orsich,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2011-06-16 18:05:39

Añadiendo a la respuesta de @ALoR, por conveniencia puede poner lo siguiente en ~/.mongorc.js

function dropDatabases(){
    var mongo = db.getMongo();

    var dbNames = mongo.getDBNames();
    for (var i = 0; i < dbNames.length; i++) {
        var db = mongo.getDB( dbNames[i] );

        print( "Dropping database " + db.getName() + "..." );
        db.dropDatabase();
    }
}

Entonces en la cáscara de mongo puedes simplemente hacer

dropDatabases()

De los documentos:

Mongo leerá el .mongorc.archivo js del directorio personal del usuario que invoca mongo. En el archivo, los usuarios pueden definir variables, personalizar el símbolo del shell de mongo o actualizar la información que desean actualizar cada vez que inician un shell.

 3
Author: btiernay,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-03-09 02:32:00

Guarde esto en drop_all_dbs.js:

var databases = db.getMongo().getDBNames()
for(var i in databases){
    db = db.getMongo().getDB( databases[i] );
    if(db.getName() == "admin" || db.getName() == "local"){
        print("skipping db " + db.getName())
        continue
    }
    print( "dropping db " + db.getName() );
    db.dropDatabase();
}

Ahora puedes ejecutar:

mongo drop_all_dbs.js

Y todas las bases de datos (excepto admin y local) se eliminarán.

Esta respuesta es una copia de la de ALoR, solo arregla la caída del sistema dbs

 1
Author: Gas,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-03 10:39:24

Es tan fácil como

mongo --eval 'db.dropDatabase()'

O bien, puede iniciar una sesión de mongo en su terminal y escribir

db.dropDatabase()

Que es exactamente lo mismo.

 0
Author: Pedro José Piquero Plaza,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-06-12 09:00:53