我想知道是否有命令從我的MongoDB中刪除每個數據庫?MongoDB刪除每個數據庫
我知道如果我只想刪除一個數據表,我只需鍵入數據庫的名稱,如下面的代碼,但我不想指定它。
mongo DB_NAME --eval 'db.dropDatabase();'
我想知道是否有命令從我的MongoDB中刪除每個數據庫?MongoDB刪除每個數據庫
我知道如果我只想刪除一個數據表,我只需鍵入數據庫的名稱,如下面的代碼,但我不想指定它。
mongo DB_NAME --eval 'db.dropDatabase();'
,你可以創建一個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
你可以很容易做到這一點通過C#官方驅動:
var _mongoServer = MongoServer.Create("mongodb://localhost:27020");
var names = _mongoServer.GetDatabaseNames();
foreach (var name in names)
{
_mongoServer.DropDatabase(name);
}
你也可以用一個簡單的命令蒙哥做到這一點:
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();
})
添加到@亞羅士打的答案,爲了方便你可以在~/.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();
}
}
然後在蒙戈外殼,你可以簡單地做
dropDatabases()
從文檔:
蒙戈將讀取用戶調用蒙戈的主目錄中的文件.mongorc.js。在文件中,用戶可以定義變量,定製mongo shell提示符,或更新每次啓動shell時更新的信息。
對我而言,這沒有奏效。我通過添加fol – titusmagnus 2013-06-24 02:34:14
來修復它我已經做出更新來糾正這些問題。感謝您的支持! – btiernay 2014-11-13 00:40:28
試試這個命令:
mongo --quiet --eval 'db.getMongo().getDBNames().forEach(function(i){db.getSiblingDB(i).dropDatabase()})'
工程很好,你不必爲它創建一個js文件。尼斯。 – 2013-11-25 13:50:22
什麼是對稱加載它? – nha 2014-09-13 19:14:02
我剛剛發現的這種方法的一個問題是,db var通過mongo控制檯會話持續存在,所以如果有人正在與其中一個數據庫進行交互,那麼它將被db.getSiblingDB調用排除。 – 2016-04-21 18:30:16
保存這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
和所有數據庫(除管理和當地)將被丟棄。
這個答案是亞羅士打的一個副本,剛修好系統DBS的下降
'var mongo = db.getMongo(); mongo.getDBNames()。forEach(function(dbname)var db = mongo.getDB(dbname); db.dropDatabase(); });' – tjmehta 2013-04-24 02:13:24
您也可以複製粘貼上面的代碼並將其鍵入蒙戈控制檯。 – 2015-05-19 14:05:22
這使我的系統數據庫(Mongo版本2.4.3)下降。我不得不重新啓動mongodb進程以使其再次工作。 – 2015-09-02 07:11:26