MongoDB отбрасывает каждую базу данных
Я хотел бы знать, есть ли команда для удаления всех баз данных из моего MongoDB?
Я знаю, что если я хочу удалить только один datatable, мне просто нужно ввести имя базы данных, как показано ниже, но я не хочу указывать его.
mongo DB_NAME --eval 'db.dropDatabase();'
7 ответов:
вы можете создать цикл javascript, который выполняет задание, а затем выполнить его в mongoconsole.
var dbs = db.getMongo().getDBNames() for(var i in dbs){ db = db.getMongo().getDB( dbs[i] ); print( "dropping db " + db.getName() ); db.dropDatabase(); }
сохранить его в dropall.js и затем выполнить:
mongo dropall.js
попробуйте эту команду:
mongo --quiet --eval 'db.getMongo().getDBNames().forEach(function(i){db.getSiblingDB(i).dropDatabase()})'
вы также можете сделать это с помощью простой команды монго:
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(); })
вы можете сделать это легко через официальный драйвер c#:
var _mongoServer = MongoServer.Create("mongodb://localhost:27020"); var names = _mongoServer.GetDatabaseNames(); foreach (var name in names) { _mongoServer.DropDatabase(name); }
добавление к ответу @ALoR, для удобства вы можете поместить следующее в ~/.монгорк.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(); } }
тогда в оболочке монго вы можете просто сделать
dropDatabases()
документы:
Монго будет читать .монгорк.JS-файл из домашнего каталога пользователя, вызывающего mongo. В этом файле пользователи могут определять переменные, настраивать приглашение оболочки mongo или обновлять информацию, которую они хотели бы обновлять при каждом запуске ракушка.
сохраните это в 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(); }
теперь вы можете выполнить:
mongo drop_all_dbs.js
и все базы данных (кроме admin и local) будут удалены.
этот ответ является копией Алор-один, просто исправьте капля системе ДБО