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