드라이버가 포함된 MongoDB
정의
db.collection.drop(<options>)데이터베이스에서 컬렉션 또는 보기를 제거합니다. 이 메서드는 제거된 컬렉션과 관련된 모든 인덱스도 제거합니다.
drop()은(는)drop명령에 대한 래퍼(wrapper)입니다.반환합니다: true
참고
지정된 컬렉션이 존재하지 않더라도, db.collection.drop()은 여전히 true를 반환합니다.
호환성
이 메서드는 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.
- MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스
참고
이 명령은 모든 MongoDB Atlas 클러스터에서 지원됩니다. 모든 명령에 대한 Atlas 지원에 관해 자세히 알아보려면 지원되지 않는 명령을 참조하세요.
MongoDB Enterprise: MongoDB의 구독 기반 자체 관리 버전
MongoDB Community: MongoDB의 소스 사용 가능 무료 자체 관리 버전
구문
drop() 메서드의 형식은 다음과 같습니다.
db.collection.drop( { writeConcern: <document> } )
drop() 메서드는 다음 필드가 있는 문서(선택 사항) 를 취합니다.
필드 | 설명 |
|---|---|
쓰기 고려 | 선택 사항. 샤딩된 클러스터 에서 실행하는 경우 |
행동
drop()메서드 및drop명령은 제거된 컬렉션에서 열린 모든 변경 스트림에 대해 무효화 이벤트 를 생성합니다.db.collection.drop()메서드 및 명령은 컬렉션 삭제하기 전에 대상 컬렉션 에서 진행 중인 모든 인덱스 빌드를drop중단합니다.복제본 세트 또는 샤드 복제본 세트의 경우 기본 인덱스에서 인덱스를 중단해도 보조 인덱스 빌드가 동시에 중단되지는 않습니다. MongoDB가 프라이머리 인덱스에서 지정된 인덱스에 대해 진행 중인 빌드를 중단하려고 시도하고 성공하면 연결된
abortoplog 항목을 생성합니다. 복제된 진행 중인 빌드가 있는 세컨더리 멤버는 인덱스 빌드를 커밋하거나 중단하기 전에 프라이머리에서 oplog 항목을 커밋하거나 중단할 때까지 기다립니다.컬렉션을 제거하면 관련된 영역/태그 범위가 삭제됩니다.
MongoDB 5.0부터
mongos의 관리 데이터베이스 또는 config 데이터베이스 에서 컬렉션 삭제하려고 하면drop명령과db.collection.drop()메서드가 오류를 반환합니다. 이러한 컬렉션을 삭제하려면 config 서버 에 연결하여 해당 서버에서 명령을 실행 .경고
관리 데이터베이스 또는 config 데이터베이스에서 collection을 제거하면 클러스터가 사용할 수 없는 상태가 될 수 있습니다.
MongoDB 6.0부터
drop()는 지정된 컬렉션과 암호화된 필드와 관련된 모든 내부 컬렉션을 제거합니다.중요
mongoshdrop()메서드의 동작은 드라이버의drop메서드의 동작과 다릅니다. 지정된 컬렉션과 암호화된 필드와 관련된 내부 컬렉션을 먈거하려면 드라이버 연결에서 자동 암호화가 활성화되어 있어야 합니다.mongosh는 항상 지정된 컬렉션 및 암호화된 필드와 관련된 내부 컬렉션을 제거합니다.
샤딩된 클러스터에서 제거된 Collection 이름 재사용하기
MongoDB 5.0 이상 버전을 실행하는 샤딩된 클러스터의 경우 특별한 조치가 필요하지 않습니다. drop() 메서드를 사용한 다음 같은 이름의 새 컬렉션을 만듭니다.
리소스 잠금
db.collection.drop()는 작업 기간 동안 지정된 컬렉션 에 대한 배타 락 얻습니다. 컬렉션 에 대한 모든 후속 작업은 가 락 해제할 때까지 기다려야 합니다.db.collection.drop()
예시
기본 쓰기 고려를 사용하여 컬렉션 제거
다음 연산은 현재 데이터베이스에서 students 컬렉션을 제거합니다.
db.students.drop()
w: 1 쓰기 고려를 사용하여 컬렉션 제거
다음 연산은 현재 데이터베이스에서 students 컬렉션을 제거합니다. 이 연산은 1 쓰기 고려를 사용합니다.
db.students.drop( { writeConcern: { w: 1, j: true } } )