Chciałbym wiedzieć, czy istnieje polecenie usunięcia wszystkich baz danych z mojej bazy danych MongoDB?
Wiem, że jeśli chcę porzucić tylko jeden datatable, wystarczy wpisać nazwę bazy danych, jak w poniższym kodzie, ale nie chcę jej określać.
mongo DB_NAME --eval 'db.dropDatabase();'
var mongo = db.getMongo(); mongo.getDBNames().forEach(function (dbname) { var db = mongo.getDB(dbname); db.dropDatabase(); });
Wypróbuj to polecenie:
mongo --quiet --eval 'db.getMongo().getDBNames().forEach(function(i){db.getSiblingDB(i).dropDatabase()})'
źródło
docker exec mongodb sh -c "mongo --quiet --eval 'db.getMongo().getDBNames().forEach(function(i){db.getSiblingDB(i).dropDatabase()})'"
Możesz to również zrobić za pomocą prostego polecenia 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(); })
źródło
Zapisz to w 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(); }
Teraz możesz wykonać:
a wszystkie bazy danych (z wyjątkiem admin i lokalne) zostaną usunięte.
Ta odpowiedź jest kopią odpowiedzi ALoR, wystarczy naprawić spadek systemowych dbs
źródło
Dodając do odpowiedzi @ ALoR, dla wygody możesz umieścić następujący tekst w ~ / .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(); } }
Następnie na muszli mongo możesz po prostu zrobić
Z dokumentów:
źródło
Możesz to łatwo zrobić za pomocą oficjalnego sterownika C #:
var _mongoServer = MongoServer.Create("mongodb://localhost:27020"); var names = _mongoServer.GetDatabaseNames(); foreach (var name in names) { _mongoServer.DropDatabase(name); }
źródło
var mongo = db.getMongo(); mongo.getDBNames().filter(n => n != 'admin' && n != 'local' && n != 'config').forEach(function (dbname) { var db = mongo.getDB(dbname); db.dropDatabase(); });
Ten jest bezpieczny do skopiowania i wykonania na mongoshell. Kredyty za wszystkie powyższe odpowiedzi. Po prostu wyklucz również bazę danych „config”.
źródło
To jest tak proste, jak
mongo --eval 'db.dropDatabase()'
Możesz też rozpocząć sesję mongo na swoim terminalu i pisać
Dokładnie tak samo.
źródło