Docs Menu
Docs Home
/
MongoDB 매뉴얼
/ / /

db.collection.drop()

이 페이지의 내용

  • 정의
  • 호환성
  • 구문
  • 행동
  • 예시

드라이버가 포함된 MongoDB

이 페이지에서는 mongosh 메서드를 설명합니다. MongoDB 드라이버에서 해당 메서드를 보려면 프로그래밍 언어의 해당 페이지를 참조하세요.

C#Java SyncNode.jsPyMongoCC++GoJava RSKotlin CoroutineKotlin SyncPHPMongoidRustScala
db.collection.drop(<options>)

데이터베이스에서 컬렉션이나 보기를 제거합니다. 이 메서드는 삭제된 컬렉션과 관련된 모든 인덱스도 제거합니다. 메서드는 drop 명령을 감싸는 래퍼(wrapper)를 제공합니다.

반환합니다:true

참고

지정된 컬렉션이 존재하지 않더라도, db.collection.drop()는 여전히 true를 반환합니다.

다음 환경에서 호스팅되는 배포에 db.collection.drop() 사용할 수 있습니다.

  • MongoDB Atlas: 클라우드에서의 MongoDB 배포를 위한 완전 관리형 서비스

drop() 메서드의 형식은 다음과 같습니다.

db.collection.drop( { writeConcern: <document> } )

drop() 메서드는 다음과 같은 필드가 있는 문서(선택 사항)를 취합니다.

필드
설명
쓰기 고려

선택 사항입니다. db.collection.drop() 작업의 쓰기 고려를 표현하는 문서입니다. 기본 쓰기 고려를 사용하려면 생략합니다.

샤딩된 클러스터에서 실행되는 경우 mongosdrop 명령의 쓰기 고려와 해당 헬퍼 db.collection.drop()"majority"로 변환합니다.

  • 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을 MongoDB 5.0 이전에 생성하면 mongos에서 잘못된 샤드로 작업을 전달할 수 있습니다. 이러한 상황을 방지하려면 아래의 버전별 지침을 사용하세요.

MongoDB 5.0 이상 버전을 실행하는 샤딩된 클러스터의 경우 특별한 조치가 필요하지 않습니다. drop() 메서드를 사용한 다음 같은 이름의 새 컬렉션을 만듭니다.

샤딩된 클러스터의 경우 drop() 메서드를 사용하여 동일한 이름으로 새 컬렉션을 생성하는 경우 다음 중 하나를 수행해야 합니다.

캐시된 라우팅 테이블을 플러시하는 것은 db.collection.remove()로 샤드 컬렉션을 제거하는 것보다 빠르기 때문에 선호되는 절차입니다. 캐시 플러시를 방지하려는 경우에만 remove() 메서드를 사용합니다.

db.collection.drop()은 작업 기간 동안 지정된 컬렉션에 대한 배타 락을 얻습니다. 컬렉션에 대한 모든 후속 작업은 db.collection.drop()이 잠금을 해제할 때까지 기다려야 합니다.

다음 연산은 현재 데이터베이스에서 students 컬렉션을 제거합니다.

db.students.drop()

db.collection.drop() 옵션 문서를 수락합니다.

다음 연산은 현재 데이터베이스에서 students 컬렉션을 제거합니다. 이 연산은 1 쓰기 고려를 사용합니다.

db.students.drop( { writeConcern: { w: 1 } } )

돌아가기

db.collection.distinct

이 페이지의 내용