MongoDB 컬렉션 이름 변경이란?
MongoDB에서 기존 컬렉션의 이름을 변경해야 하는 경우가 종종 있습니다. 예를 들어, 개발 단계에서 임시로 지정한 컬렉션 이름을 운영 환경에 맞게 수정하거나, 네이밍 규칙을 정비할 때 유용합니다. 이때 renameCollection() 메서드를 사용하면 별도의 데이터 복사 없이 컬렉션 이름을 간단히 변경할 수 있습니다.
이번 글에서는 실제 예제를 통해 renameCollection() 메서드를 사용하는 방법을 단계별로 살펴보겠습니다.
1단계: 샘플 컬렉션 생성
먼저 문서를 포함하는 컬렉션을 생성합니다. insertOne() 메서드를 사용하여 세 개의 문서를 순차적으로 삽입해 보겠습니다.
> db.demo690.insertOne({_id:101,Name:"Sam"});
{ "acknowledged" : true, "insertedId" : 101 }
> db.demo690.insertOne({_id:102,Name:"Mike"});
{ "acknowledged" : true, "insertedId" : 102 }
> db.demo690.insertOne({_id:103,Name:"John"});
{ "acknowledged" : true, "insertedId" : 103 }각 문서가 성공적으로 삽입되면 acknowledged 값이 true로 반환되며, 삽입된 _id도 함께 확인할 수 있습니다.
2단계: find() 메서드로 문서 조회
find() 메서드를 사용하여 컬렉션에 저장된 모든 문서를 확인합니다.
> db.demo690.find();
위 쿼리를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.
{ "_id" : 101, "Name" : "Sam" }
{ "_id" : 102, "Name" : "Mike" }
{ "_id" : 103, "Name" : "John" }3단계: renameCollection()으로 컬렉션 이름 변경
이제 핵심 단계입니다. renameCollection() 메서드에 새로운 컬렉션 이름을 인자로 전달하여 이름을 변경합니다. 여기서는 demo690 컬렉션을 demo691로 변경해 보겠습니다.
> db.demo690.renameCollection("demo691");
{ "ok" : 1 }실행 결과로 { "ok" : 1 }이 반환되면 컬렉션 이름이 성공적으로 변경된 것입니다. 만약 대상 이름의 컬렉션이 이미 존재하는 경우 에러가 발생하므로, 필요하다면 dropTarget 옵션을 활용할 수 있습니다.
4단계: 이름 변경 결과 확인
새 컬렉션 이름으로 find() 메서드를 다시 실행하여 데이터가 그대로 유지되는지 확인합니다.
> db.demo691.find();
출력 결과는 다음과 같습니다.
{ "_id" : 101, "Name" : "Sam" }
{ "_id" : 102, "Name" : "Mike" }
{ "_id" : 103, "Name" : "John" }기존 문서들이 모두 그대로 보존되어 있는 것을 확인할 수 있습니다. renameCollection()은 데이터를 복사하는 것이 아니라 메타데이터만 변경하기 때문에 대용량 컬렉션에서도 빠르게 수행됩니다.
정리
MongoDB에서 컬렉션 이름을 변경하는 방법은 매우 간단합니다. renameCollection("새이름") 메서드 한 줄이면 되며, 데이터 손실 없이 즉시 적용됩니다. 다만 동일한 데이터베이스 내에서만 이름 변경이 가능하고, 분산 트랜잭션 환경이나 일부 특수 상황에서는 제약이 있을 수 있으니 참고하시기 바랍니다.