여러 컬렉션에서 개체를 삭제할 수있는 방법이 있습니까? MongoDB에서이 5 개의 모음 명령의 모든 것을 삭제 하시겠습니까?여러 컬렉션의 항목을 한 번에 삭제
Mongo 데이터베이스의 각 컬렉션에서 수동으로 삭제하는 것은 시간이 많이 걸립니다.
여러 컬렉션에서 개체를 삭제할 수있는 방법이 있습니까? MongoDB에서이 5 개의 모음 명령의 모든 것을 삭제 하시겠습니까?여러 컬렉션의 항목을 한 번에 삭제
Mongo 데이터베이스의 각 컬렉션에서 수동으로 삭제하는 것은 시간이 많이 걸립니다.
Andrew가 언급했듯이이 작업을 수행하는 방법은 없지만 Javascript를 사용하여 원하는 것을 얻을 수 있습니다. 내가 빨리 데이터베이스 목록을 드롭하고 싶었 예를 들어, (그리고 불결하게, 이것은 단지 개념 증명 코드 예제입니다!) :
이var deletelist = ["deleteme1", "deleteme2", "deleteme3"]
deletelist.forEach(
function deletedbs(name) {
db = db.getMongo().getDB(name);
db.dropDatabase();
print(name + " deleted");
}
)
물론 어떤 오류 검사,하지만 서버 측의 이런 종류의 스크립트는 교차 수집 및 교차 데이터베이스 기능을 위해 작동합니다. 모든 데이터베이스에 뭔가를 실행하고자한다면, 다음과 같은 목록을 만들 수 있습니다 :
var allDBs = db.getMongo().getDBNames()
for(var name in allDBs){
db = db.getMongo().getDB(name);
db.<command to execute on each DB>;
}
은 물론, 당신은 그래서 당신은 당신의 데이터베이스를 파괴하지 않도록이 같은 일을 실행할 때 매우 신중해야,
http://www.mongodb.org/display/DOCS/Server-side+Code+Execution
: 그래서 여기에 MongoDB를 워드 프로세서 확인, 광범위하게 테스트하고 신중하게 사용 :를 자세한 내용은 서버 측 JS에
없음 실제로, 당신은 단지 수동으로 각 컬렉션에서 모든 항목을 제거 할 필요가 없습니다 :
db.foo1.remove({})
db.foo2.remove({})
또한
성능에 대해 관심이 있다면, 당신은 모든 모음을 놓을 수를 더 빨리 있어야 :
db.foo1.drop()
db.foo2.drop()
다른 방법으로 이러한 5 개의 모음을 자주 삭제해야하는 경우 하나의 데이터베이스 아래에 그룹화하고 전체 데이터베이스를 삭제할 수 있습니다.
use dbWithFiveCollections
db.dropDatabase()