내 MongoDB에서 모든 데이터베이스를 삭제하는 명령이 있는지 알고 싶습니다.
데이터 테이블을 하나만 삭제하려면 아래 코드와 같이 데이터베이스 이름을 입력하면되지만 지정하고 싶지는 않습니다.
mongo DB_NAME --eval 'db.dropDatabase();'
답변
작업을 수행하는 자바 스크립트 루프를 생성 한 다음 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()})'
답변
간단한 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();
})
답변
@ALoR의 답변에 추가하면 편의를 위해 ~ / .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()
문서에서 :
Mongo는 mongo를 호출하는 사용자의 홈 디렉토리에서 .mongorc.js 파일을 읽습니다. 파일에서 사용자는 변수를 정의하고 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
모든 데이터베이스 (관리 및 로컬 제외)가 삭제됩니다.
이 답변은 ALoR의 복사본입니다. 시스템 db의 드롭을 수정하십시오.
답변
C # 공식 드라이버를 통해 쉽게 할 수 있습니다.
var _mongoServer = MongoServer.Create("mongodb://localhost:27020");
var names = _mongoServer.GetDatabaseNames();
foreach (var name in names)
{
_mongoServer.DropDatabase(name);
}
답변
var mongo = db.getMongo(); mongo.getDBNames().filter(n => n != 'admin' && n != 'local' && n != 'config').forEach(function (dbname) { var db = mongo.getDB(dbname); db.dropDatabase(); });
이것은 mongoshell에서 복사하고 실행하는 것이 안전합니다. 위의 모든 답변에 대한 크레딧. ‘config’데이터베이스도 제외하십시오.