89 votes

Mongodb supprimer chaque base de données

Je voudrais savoir s’il existe une commande pour supprimer toutes les bases de données de mon mongodb?

Je sais que si je souhaite supprimer un seul type de données, il me suffit de taper le nom de la base de données, comme le code ci-dessous, mais je ne veux pas être obligé de le spécifier.

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

Toute aide serait appréciée.

Merci.

John

135voto

ALoR Points 2599

vous pouvez créer une boucle javascript qui exécute le travail, puis l'exécuter dans 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();
}
 

sauvegardez-le dans dropall.js puis exécutez:

 mongo dropall.js
 

96voto

kev Points 41855

Essayez cette commande:

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

17voto

Andreas Points 890

Vous pouvez également le faire avec une simple commande 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();
 })
 

5voto

btiernay Points 2213

En ajoutant à la réponse de @ALoR, pour plus de commodité, vous pouvez mettre le texte suivant dans ~ / .mongorc.js

 function dropDatabases(){
    var dbNames = db.getMongo().getDBNames()
    for (var i = 0; i < dbNames.length; i++) {
        db = db.getMongo().getDB( dbNames[i] );
        print( "Dropping database " + db.getName() );
        db.dropDatabase();
    }
}
 

mongo lira le fichier .mongorc.js à partir du répertoire de base de l'utilisateur qui appelle mongo. Dans le fichier, les utilisateurs peuvent définir des variables, personnaliser l'invite du shell mongo ou mettre à jour les informations qu'ils souhaitent mettre à jour chaque fois qu'ils lancent un shell.

4voto

Andrew Orsich Points 24503

Vous pouvez le faire facilement grâce au pilote officiel c #:

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

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

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X