Computer >> 컴퓨터 >  >> 프로그래밍 >> MongoDB

MongoDB에서 필드 이름을 변경하는 방법 – $project 활용 가이드

MongoDB에서 필드 이름 변경하기

MongoDB에서 필드 이름을 변경하려면 $project 연산자를 사용하면 됩니다. $project는 애그리게이션 파이프라인의 단계 중 하나로, 기존 필드의 값을 새로운 필드 이름으로 매핑하여 결과를 출력할 수 있습니다.

먼저 문서가 포함된 컬렉션을 생성해 보겠습니다.

1단계: 컬렉션 생성 및 문서 삽입

insertOne() 메서드를 사용하여 demo517 컬렉션에 문서를 차례대로 삽입합니다.

> db.demo517.insertOne({"Name":"Chris Brown"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e88a2a2987b6e0e9d18f595")
}
> db.demo517.insertOne({"Name":"David Miller"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e88a2ab987b6e0e9d18f596")
}
> db.demo517.insertOne({"Name":"John Doe"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e88a2b1987b6e0e9d18f597")
}

2단계: 전체 문서 조회하기

find() 메서드를 사용하여 컬렉션에 저장된 모든 문서를 확인합니다.

> db.demo517.find();

위 명령을 실행하면 다음과 같은 결과가 출력됩니다.

{ "_id" : ObjectId("5e88a2a2987b6e0e9d18f595"), "Name" : "Chris Brown" }
{ "_id" : ObjectId("5e88a2ab987b6e0e9d18f596"), "Name" : "David Miller" }
{ "_id" : ObjectId("5e88a2b1987b6e0e9d18f597"), "Name" : "John Doe" }

3단계: $project로 필드 이름 변경하기

다음은 Name 필드를 FullName이라는 새로운 이름으로 변경하는 쿼리입니다.

> db.demo517.aggregate([{$project:{FullName:"$Name"}}]);

쿼리를 실행하면 아래와 같이 모든 문서에서 필드 이름이 FullName으로 바뀐 것을 확인할 수 있습니다.

{ "_id" : ObjectId("5e88a2a2987b6e0e9d18f595"), "FullName" : "Chris Brown" }
{ "_id" : ObjectId("5e88a2ab987b6e0e9d18f596"), "FullName" : "David Miller" }
{ "_id" : ObjectId("5e88a2b1987b6e0e9d18f597"), "FullName" : "John Doe" }

참고: 원본 데이터 자체를 변경하려면?

$project는 원본 데이터를 수정하지 않고 쿼리 결과에만 새로운 필드 이름을 적용합니다. 따라서 저장된 문서의 필드 이름 자체를 영구적으로 변경하고 싶다면 updateMany() 메서드와 $rename 연산자를 함께 사용해야 합니다.

> db.demo517.updateMany({}, { $rename: { "Name": "FullName" } });

이처럼 목적에 따라 $project(조회 시 필드명 변경) 또는 $rename(저장된 데이터의 필드명 변경)을 선택하여 사용하면 됩니다.