AI 에이전트의 경우: 문서 인덱스는 https://www.mongodb.com/ko-kr/docs/llms.txt에서 사용할 수 있으며, 모든 페이지의 마크다운 버전은 어떤 URL 경로에 .md를 추가하여 사용할 수 있습니다.
Docs Menu

renameCollection(데이터베이스 명령)

renameCollection

기존 컬렉션의 이름을 변경합니다. renameCollection에 완전한 네임스페이스(<database>.<collection>) 형태로 컬렉션 이름을 지정합니다.

팁

In mongosh, this command can also be run through the renameCollection() helper method.

Helper methods are convenient for mongosh users, but they may not return the same level of information as database commands. In cases where the convenience is not needed or the additional return fields are required, use the database command.

관리 데이터베이스에 대해 renameCollection 명령을 실행합니다.

이 명령은 다음 환경에서 호스팅되는 배포에서 사용할 수 있습니다.

  • MongoDB Atlas: The fully managed service for MongoDB deployments in the cloud

참고

This command is supported in all MongoDB Atlas clusters. For information on Atlas support for all commands, see Unsupported Commands.

MongoDB 8.1부터 renameCollection 이(가) Stable API V1에 포함됩니다. Stable API 에서 renameCollection 를 사용하려면 MongoDB 8.1 이상을 실행 하는 배포서버 에 운전자 연결해야 합니다.

명령은 다음과 같은 구문을 가집니다:

db.runCommand(
{
renameCollection: "<source_namespace>",
to: "<target_namespace>",
dropTarget: <true|false>,
writeConcern: <document>,
comment: <any>
}
)

이 명령에는 다음 필드가 포함됩니다.

필드
유형
설명

renameCollection

문자열

이름을 바꿀 컬렉션의 네임스페이스입니다. 네임스페이스는 데이터베이스 이름과 컬렉션 이름의 조합입니다.

to

문자열

컬렉션의 새 네임스페이스입니다. 새 네임스페이스가 다른 데이터베이스를 지정하는 경우 renameCollection 명령은 컬렉션을 새 데이터베이스에 복사하고 소스 컬렉션을 제거합니다. 이름 지정 제한 사항을 참조하세요.

dropTarget

부울

선택 사항입니다. true인 경우 mongod는 컬렉션 이름을 변경하기 전에 renameCollection의 target을 삭제합니다. 기본값은 false입니다.

writeConcern

문서

선택 사항입니다. 작업에 대한 쓰기 고려를 표현하는 문서입니다. 기본값 쓰기 고려를 사용하려면 생략합니다.

When issued on a sharded cluster, mongos converts the write concern of the renameCollection command and its helper db.collection.renameCollection() to "majority".

comment

any

선택 사항. 이 명령에 첨부할 사용자 제공 코멘트입니다. 설정되면 이 설명은 다음 위치에서 이 명령의 레코드와 함께 표시됩니다.

댓글은 유효한 모든 BSON types (문자열, 정수, 객체, 배열 등)이 될 수 있습니다.

renameCollection 명령을 사용하여 샤딩된 컬렉션 의 이름을 변경할 수 있습니다. 대상 데이터베이스 소스 데이터베이스 와 동일해야 합니다. 이 작업은 모든 인덱스를 보존합니다.

소스 데이터베이스와 대상 데이터베이스에 동일한 프라이머리 샤드 있는 한 renameCollection 를 사용하여 샤딩된 클러스터 에서 샤딩되지 않은 컬렉션 이름을 바꿀 수 있습니다. renameCollection 를 실행 동일한 데이터베이스 에서 컬렉션 이름을 바꾸는 경우 작업은 컬렉션 데이터와 인덱스를 보존합니다. 다른 데이터베이스 대해 renameCollection 를 실행 경우 작업은 컬렉션 데이터와 인덱스를 새 파일에 다시 씁니다.

Starting in MongoDB 9.0, you can rename time series collections with renameCollection.

renameCollection target이 기존 컬렉션의 이름이고, 그리고 dropTarget: true를 지정하지 않으면 실패합니다.

소스 컬렉션에서 인덱스 생성이 진행 중인 경우, 이름 변경 작업이 BackgroundOperationInProgressForNamespace 오류로 실패합니다. 대상 컬렉션에서 인덱스 생성이 진행 중이고 dropTarget: true을(를) 지정하는 경우 작업도 실패합니다.

컬렉션 이름을 바꾸려면 인덱스 생성이 완료될 때까지 기다린 다음 작업을 다시 시도하세요. 진행 중인 인덱스 생성을 확인하려면 db.currentOp() 메서드를 사용합니다.

renameCollection 대상 네임스페이스에 따라 성능에 미치는 영향이 다릅니다.

대상 데이터베이스가 소스 데이터베이스와 동일한 경우 renameCollection은 네임스페이스만 변경합니다. 이는 빠른 작업입니다.

대상 데이터베이스가 소스 데이터베이스와 다른 경우 renameCollection은 소스 컬렉션의 모든 문서를 대상 컬렉션으로 복사합니다. 컬렉션의 크기에 따라 완료하는 데 시간이 더 걸릴 수 있습니다.

버전 5.0에서 변경되었습니다.

샤딩된 클러스터에서 샤딩된 컬렉션이나 샤딩되지 않은 컬렉션의 이름을 변경할 때 소스 및 대상 컬렉션은 모든 샤드에서만 독점적으로 잠깁니다. 소스 및 대상 컬렉션에 대한 후속 작업은 이름 바꾸기 작업이 완료될 때까지 기다려야 합니다.

MongoDB 잠금에 대한 자세한 내용은 FAQ: 동시성을 참조하세요.

동일한 데이터베이스 내에서 컬렉션의 이름을 변경하는 경우 renameCollection은 작업 기간 동안 소스 및 대상 컬렉션에 대한 배타적 잠금을 얻습니다. 컬렉션에 대한 모든 후속 작업은 renameCollection이 완료될 때까지 대기해야 합니다.

MongoDB 9.0부터는 서로 다른 데이터베이스 간에 컬렉션의 이름을 변경할 때 renameCollection은 작업 기간 동안 소스 및 대상 컬렉션에 대한 배타적 잠금을 얻습니다. DDL 작업과 소스 및 대상 컬렉션에 대한 쓰기 (write)는 renameCollection가 완료될 때까지 기다려야 합니다. 대부분의 읽기 작업은 잠금 없는 읽기를 사용하며 차단되지 않습니다.

9.0 이전 버전에서는 데이터베이스 간 이름 변경 중에 renameCollection가 복사 단계 동안 소스 컬렉션에 공유(S) 잠금만 유지하고 이름 변경을 완료하기 전에 잠금을 해제했습니다.

잠금 변경은 복제본 세트에만 영향을 미칩니다. 샤딩된 클러스터는 이 페이지 앞부분에서 설명한 대로 이름 변경 기간 동안 두 컬렉션 모두를 이미 잠급니다.

MongoDB 잠금에 대한 자세한 내용은 FAQ: 동시성을 참조하세요.

  • 복제된 데이터베이스의 컬렉션 이름을 복제되지 않은 local 데이터베이스로 바꿀 수 없습니다.

  • 복제되지 않은 local 데이터베이스의 collection 이름은 복제된 데이터베이스로 변경할 수 없습니다.

경고

The db.collection.renameCollection() method and renameCollection command invalidate open cursors. This creates an invalidate event for any existing change streams opened on the source or target collection, and also interrupts queries that are currently returning data from the renamed collection.

A mongodump started with --oplog fails if a client issues the renameCollection command during the dump process. See mongodump.--oplog for more information.

다음 예시에서는 test 데이터베이스의 orders collection 이름을 test 데이터베이스의 orders2014로 변경합니다.

db.adminCommand( { renameCollection: "test.orders", to: "test.orders2014" } )

mongosh provides the db.collection.renameCollection() helper for the command to rename collections within the same database. The following is equivalent to the previous example:

use test
db.orders.renameCollection( "orders2014" )
이 페이지 평가하기