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

MongoDB 컬렉션의 모든 문서에서 단일 필드만 조회하는 방법

MongoDB 프로젝션(Projection)으로 특정 필드만 표시하기

MongoDB에서 프로젝션(Projection)이란 쿼리 결과 중 선택한 필드만 화면에 표시하는 기능을 의미합니다. 표시하고 싶은 필드의 값을 1로 설정하면 해당 필드만 결과에 포함됩니다. 반대로 제외할 필드는 0으로 설정할 수 있습니다.

이번 글에서는 컬렉션의 모든 문서에서 단일 필드만 조회하는 방법을 단계별로 살펴보겠습니다.

1. 샘플 컬렉션 생성

먼저 insertOne() 메서드를 사용하여 문서가 포함된 컬렉션을 생성해 보겠습니다.

> db.demo384.insertOne({"StudentName":"Chris Brown","StudentCountryName":"US"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e5b67a022064be7ab44e7f2")
}
> db.demo384.insertOne({"StudentName":"David Miller","StudentCountryName":"AUS"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e5b67ab22064be7ab44e7f3")
}
> db.demo384.insertOne({"StudentName":"John Doe","StudentCountryName":"UK"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e5b67b422064be7ab44e7f4")
}

2. find() 메서드로 전체 문서 확인

find() 메서드를 사용하면 컬렉션의 모든 문서를 표시할 수 있습니다.

> db.demo384.find();

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

{ "_id" : ObjectId("5e5b67a022064be7ab44e7f2"), "StudentName" : "Chris Brown", "StudentCountryName" : "US" }
{ "_id" : ObjectId("5e5b67ab22064be7ab44e7f3"), "StudentName" : "David Miller", "StudentCountryName" : "AUS" }
{ "_id" : ObjectId("5e5b67b422064be7ab44e7f4"), "StudentName" : "John Doe", "StudentCountryName" : "UK" }

3. 프로젝션을 사용하여 단일 필드만 표시

이제 하나의 필드만 표시하고 나머지 필드는 모두 제외하는 쿼리를 작성해 보겠습니다. 두 번째 인자인 프로젝션 객체에서 _idStudentName 필드를 0으로 설정하여 제외합니다.

> db.demo384.find({},{_id:0,StudentName:0});

위 쿼리를 실행하면 StudentCountryName 필드만 포함된 결과가 출력됩니다.

{ "StudentCountryName" : "US" }
{ "StudentCountryName" : "AUS" }
{ "StudentCountryName" : "UK" }

정리

MongoDB의 프로젝션 기능을 활용하면 대용량 데이터에서 필요한 필드만 효율적으로 조회할 수 있습니다. 이는 네트워크 전송량을 줄이고 애플리케이션 성능을 향상시키는 데 큰 도움이 됩니다. 참고로 프로젝션에서는 _id 필드를 제외한 나머지 필드들은 포함(1)과 제외(0) 설정을 혼합해서 사용할 수 없다는 점도 함께 기억해 두시면 좋습니다.