드라이버가 포함된 MongoDB
정의
db.collection.renameCollection(target, dropTarget)컬렉션의 이름을 변경합니다.
renameCollection데이터베이스 명령에 대한 래퍼(wrapper)를 제공합니다.
매개변수
Parameter | 유형 | 설명 |
|---|---|---|
| 문자열 | collection의 새 이름입니다. 문자열을 따옴표로 묶습니다. 이름 지정 제한 사항을 참조하세요. |
| 부울 | 선택 사항. |
행동
db.collection.renameCollection() 메서드는 지정된 컬렉션 과 연결된 메타데이터 변경하여 컬렉션 내에서 작동합니다.
추가 경고 및 메시지는 문서 renameCollection를 참조하세요.
경고
db.collection.renameCollection() 메서드 및 명령은 열려 있는 커서를 무효화하여 현재 데이터를 반환하는 쿼리를 renameCollection 중단합니다.
MongoDB Change Streams 의 경우 db.collection.renameCollection() 메서드와 renameCollection 명령은 소스 또는 대상 컬렉션 에서 열려 있는 기존 MongoDB Change Streams 에 대해 무효화 이벤트를 생성합니다.
이 메서드에는 다음과 같은 제한 사항이 있습니다.
db.collection.renameCollection()는 데이터베이스 간에 컬렉션 이동할 수 없습니다.renameCollection이러한 이름 변경 작업에는 를 사용합니다.뷰의 이름은 바꿀 수 없습니다.
컬렉션 이름을 컬렉션 자체로 변경할 수는 없습니다. 컬렉션의 이름을 컬렉션 자체로 바꾸려고 하면
IllegalOperation오류가 발생합니다.
샤딩된 클러스터의 리소스 잠금
버전 5.0에서 변경되었습니다.
샤딩된 클러스터에서 샤딩된 컬렉션이나 샤딩되지 않은 컬렉션의 이름을 변경할 때 소스 및 대상 컬렉션은 모든 샤드에서만 독점적으로 잠깁니다. 소스 및 대상 컬렉션에 대한 후속 작업은 이름 바꾸기 작업이 완료될 때까지 기다려야 합니다.
MongoDB 잠금에 대한 자세한 내용은 FAQ: 동시성을 참조하세요.
복제본 세트의 리소스 잠금
renameCollection()는 작업 기간 동안 소스 및 대상 컬렉션에 대한 배타 락 얻습니다. 컬렉션에 대한 모든 후속 작업은 가 완료될 renameCollection() 때까지 기다려야 합니다.
다음과의 상호 작용 mongodump
클라이언트 덤프 프로세스 중에 를 실행하면 mongodump 로 시작한 --oplog db.collection.renameCollection()는 실패합니다. 자세한 내용은 를 mongodump.--oplog 참조하세요.
예시
db.collection.renameCollection() 컬렉션 객체 에서 메서드를 호출합니다. 예시 들면 다음과 같습니다.
db.rrecord.renameCollection("record")
이 작업은 rrecord 컬렉션의 이름을 record(으)로 변경합니다. 대상 이름( record)이 기존 컬렉션의 이름이면 작업이 실패합니다.