Pregunta MongoDB descarta cada base de datos


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

Sé que si quiero eliminar solo una tabla de datos, solo necesito escribir el nombre de la base de datos como el siguiente código, pero no quiero tener que especificarlo.

mongo DB_NAME --eval 'db.dropDatabase();'

73
2018-06-16 18:00


origen


Respuestas:


puede crear un bucle javascript que haga el trabajo y luego ejecútelo en la mongoconsole.

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

guárdalo en dropall.js y luego ejecuta:

mongo dropall.js

114
2018-06-17 11:41



Pruebe este comando:

mongo --quiet --eval 'db.getMongo().getDBNames().forEach(function(i){db.getSiblingDB(i).dropDatabase()})'

72
2018-06-04 01:04



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
2018-06-20 10:31



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

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

var names = _mongoServer.GetDatabaseNames();
foreach (var name in names)
{
   _mongoServer.DropDatabase(name);
}

4
2018-06-16 18:05



Añadiendo a la respuesta de @ ALoR, para mayor comodidad 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();
    }
}

Luego, en el caparazón de mongo puedes simplemente hacer

dropDatabases()

De los documentos:

Mongo leerá el archivo .mongorc.js desde el directorio de inicio del usuario que invoca a mongo. En el archivo, los usuarios pueden definir variables, personalizar el indicador de shell de mongo o actualizar la información que les gustaría actualizar cada vez que inician un shell.


3
2018-02-09 14:45



Guárdalo 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 (a excepción de administrador y local) se eliminarán.

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


1
2018-05-03 10:33



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
2018-06-12 09:00