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

MongoDB 쿼리에서 특정 필드(컬럼)만 선택하는 방법

MongoDB에서 특정 필드(컬럼)만 조회하고 싶다면, 나머지 필드들은 제외하면 됩니다. 즉, 숨기고 싶은 필드의 값을 0으로 설정하면 해당 필드는 결과에서 제외됩니다.

1. 테스트용 컬렉션 생성

먼저 예제로 사용할 컬렉션에 문서를 삽입해 보겠습니다.

> db.demo415.insertOne({"ClientName":"Robert","ClientCountryName":"US"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e72329db912067e57771adc")
}
> db.demo415.insertOne({"ClientName":"David","ClientCountryName":"UK"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e7232acb912067e57771add")
}
> db.demo415.insertOne({"ClientName":"Bob","ClientCountryName":"AUS"});
{
   "acknowledged" : true,
   "insertedId" : ObjectId("5e7232b4b912067e57771ade")
}

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

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

> db.demo415.find();

위 쿼리는 다음과 같은 결과를 출력합니다.

{ "_id" : ObjectId("5e72329db912067e57771adc"), "ClientName" : "Robert", "ClientCountryName" : "US" }
{ "_id" : ObjectId("5e7232acb912067e57771add"), "ClientName" : "David", "ClientCountryName" : "UK" }
{ "_id" : ObjectId("5e7232b4b912067e57771ade"), "ClientName" : "Bob", "ClientCountryName" : "AUS" }

3. 특정 필드만 선택하는 쿼리

이제 특정 필드만 선택하는 방법을 살펴보겠습니다. 아래 쿼리에서는 _idClientName 필드를 0으로 설정하여 숨기고, ClientCountryName 필드만 화면에 표시했습니다.

> db.demo415.find({},{_id:0,ClientName:0});

실행 결과는 다음과 같습니다.

{ "ClientCountryName" : "US" }
{ "ClientCountryName" : "UK" }
{ "ClientCountryName" : "AUS" }

참고 사항

MongoDB의 프로젝션(projection) 기능에서는 기본적으로 _id 필드가 항상 포함되므로, 이를 제외하려면 반드시 _id: 0으로 명시적으로 설정해야 합니다. 또한 하나의 프로젝션 객체에서 1(포함)과 0(제외)을 혼합해서 사용할 수 없으며, _id 필드만 예외적으로 함께 사용할 수 있다는 점을 기억해 두면 좋습니다.