MongoDB déposer à chaque base de données
Je voudrais savoir si il y a une commande à goutte toutes les bases de données à partir de mon MongoDB?
Je sais que si je veux déposer une seule table de données, j'ai juste besoin de taper le nom de la base de données comme le code ci-dessous mais je ne veux pas avoir à le préciser.
mongo DB_NAME --eval 'db.dropDatabase();'
Vous devez vous connecter pour publier un commentaire.
vous pouvez créer une boucle javascript qui font le travail, et puis l'exécuter dans le mongoconsole.
l'enregistrer dropall.js et puis l'exécuter:
var mongo = db.getMongo(); mongo.getDBNames().forEach(function (dbname) { var db = mongo.getDB(dbname); db.dropDatabase(); });
Essayer cette commande:
docker exec mongodb sh -c "mongo --quiet --eval 'db.getMongo().getDBNames().forEach(function(i){db.getSiblingDB(i).dropDatabase()})'"
Vous pouvez aussi le faire avec une simple mongo commande:
L'ajout de @ALoR réponse, pour plus de commodité, vous pouvez mettre ceci dans ~/.mongorc.js
Puis à le shell mongo vous pouvez simplement faire
De la documentation:
Vous pouvez le faire facilement via c# pilote officiel:
Enregistrer ce pour drop_all_dbs.js:
Maintenant, vous pouvez exécuter la commande:
et toutes les bases de données (sauf pour les admin et locales) seront supprimées.
Cette réponse est une copie de ALoR s, il suffit de fixer goutte de système dbs
Il est aussi facile que
Ou, vous pouvez démarrer une mongo session sur votre terminal et écrire
Qui est exactement le même.
var mongo = db.getMongo(); mongo.getDBNames().filter(n => n != 'admin' && n != 'local' && n != 'config').forEach(function (dbname) { var db = mongo.getDB(dbname); db.dropDatabase(); });
Ce que l'on est sûr de les copier et de les exécuter sur mongoshell. Des crédits à toutes les réponses ci-dessus. Juste exclure "config" de base de données ainsi.