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

MongoDB 쿼리에서 별칭(Alias) 생성하는 방법 – $project 활용 가이드

MongoDB 쿼리에서 별칭(Alias) 생성하기

MongoDB에서는 SQL처럼 AS 키워드를 사용하는 대신, 애그리게이션 프레임워크(aggregate framework)$project 단계를 활용하여 필드에 별칭을 지정할 수 있습니다. 이 방법을 사용하면 원본 데이터는 그대로 유지하면서 쿼리 결과에서만 필드 이름을 새롭게 바꿔 출력할 수 있습니다.

먼저 예제로 사용할 컬렉션을 생성하고 문서를 삽입해 보겠습니다.

> db.creatingAliasDemo.insertOne({_id:101,"Name":"John Doe"});
{ "acknowledged" : true, "insertedId" : 101 }
> db.creatingAliasDemo.insertOne({_id:102,"Name":"David Miller"});
{ "acknowledged" : true, "insertedId" : 102 }
> db.creatingAliasDemo.insertOne({_id:103,"Name":"Sam Williams"});
{ "acknowledged" : true, "insertedId" : 103 }

컬렉션의 모든 문서 조회하기

다음은 find() 메서드를 사용하여 컬렉션에 저장된 모든 문서를 조회하는 쿼리입니다.

> db.creatingAliasDemo.find().pretty();

위 쿼리를 실행하면 다음과 같은 결과가 출력됩니다.

{ "_id" : 101, "Name" : "John Doe" }
{ "_id" : 102, "Name" : "David Miller" }
{ "_id" : 103, "Name" : "Sam Williams" }

$project를 사용하여 별칭 생성하기

다음은 aggregate() 메서드와 $project 연산자를 조합하여 쿼리 결과에 별칭을 생성하는 방법입니다. 여기서는 "Name" 필드를 "FullName"이라는 새로운 이름으로 매핑하여 출력합니다.

> db.creatingAliasDemo.aggregate(
... [
... {
... $project: {
... _id:1,
... "FullName":"$Name"
... }
... }
... ]
... );

실행 결과를 확인해 보면, 원래의 "Name" 필드가 "FullName"이라는 별칭으로 변경되어 출력되는 것을 알 수 있습니다.

{ "_id" : 101, "FullName" : "John Doe" }
{ "_id" : 102, "FullName" : "David Miller" }
{ "_id" : 103, "FullName" : "Sam Williams" }

핵심 정리

  • aggregate() 메서드와 $project 단계를 함께 사용하면 SQL의 AS 절과 동일한 별칭 기능을 구현할 수 있습니다.
  • "새필드명": "$기존필드명" 형식으로 작성하면 기존 필드의 값이 새로운 이름으로 매핑됩니다.
  • _id:1은 결과에 _id 필드를 포함하겠다는 의미이며, 필요 없다면 _id:0으로 설정하여 제외할 수 있습니다.
  • 별칭은 쿼리 결과에만 적용되며, 원본 컬렉션의 실제 데이터는 전혀 변경되지 않습니다.