MongoDB 컬렉션의 모든 문서에 대해 단일 또는 다중 필드 선택

Tahseen Tauseef 2024년2월15일
  1. MongoDB 컬렉션의 모든 문서에 대해 단일 또는 다중 필드 선택
  2. 프로젝션 방법을 사용하여 MongoDB 컬렉션의 모든 문서에 대해 단일 또는 다중 필드 선택
  3. 결론
MongoDB 컬렉션의 모든 문서에 대해 단일 또는 다중 필드 선택

인터넷의 글로벌 확산에 따라 데이터는 전례 없는 속도로 생산되고 있습니다. 분석을 수행하려면 데이터베이스에서 필요한 데이터를 수집하거나 요청해야 하므로 데이터를 쿼리할 올바른 도구를 선택해야 합니다.

이 문서에서는 프로젝션을 통해 기본 쿼리 작업을 수행하여 MongoDB 컬렉션의 모든 문서에 대해 단일 또는 다중 필드를 선택하는 방법을 배웁니다.

MongoDB 컬렉션의 모든 문서에 대해 단일 또는 다중 필드 선택

MongoDB는 데이터를 문서 형태로 저장하는 비정형 데이터베이스 관리 시스템입니다. 또한 MongoDB는 대량의 데이터를 성공적으로 처리합니다.

포괄적인 쿼리 언어와 보편적이고 쉬운 데이터 액세스를 제공하기 때문에 가장 널리 사용되는 NoSQL 데이터베이스입니다. 예를 들어 MongoDB가 애플리케이션에 보내는 데이터의 양을 제한하기 위해 프로젝션 문서를 포함하여 반환할 필드를 지정하거나 제한할 수 있습니다.

프로젝션에는 여러 필드가 명시적으로 포함될 수 있습니다. 이 문서에 사용된 다음 예제에서 find() 메서드는 쿼리와 일치하는 모든 문서를 반환합니다.

프로젝션 방법의 구문은 다음과 같습니다.

db.collection.find( { <someOtherArray>: <condition> ... },
                    { "<array>.$" : 1 } )

쿼리 및 프로젝션 문서에 사용되는 배열은 의도한 동작을 보장하기 위해 길이가 같아야 합니다. 배열의 길이가 다른 경우 특정 시나리오에서 작업에 오류가 발생할 수 있습니다.

샘플 데이터베이스 생성

시작하기 전에 일부 샘플 데이터로 샘플 데이터베이스를 생성하여 모든 작업을 수행합니다. teams라는 컬렉션이 만들어졌고 다음 레코드가 teams 컬렉션에 삽입되었습니다.

이 컬렉션은 이 MongoDB 자습서 기사의 모든 예제에 사용됩니다. 컬렉션은 다음과 같습니다.

db={
  "teams": [
    {
      team: "Manchester City ",
      position: "1st",
      points: 70
    },
    {
      team: "Liverpool",
      position: "2nd",
      points: 69
    },
    {
      team: "Chelsea",
      position: "3rd",
      points: 59
    },
    {
      team: "Arsenal",
      position: "4th",
      points: 54
    },
    {
      team: "Tottenham",
      position: "5th",
      points: 51
    },
    {
      team: "Manchester United",
      position: "6th",
      points: 50
    }
  ]
}

find() 메서드를 사용하여 문서 쿼리

MongoDB 컬렉션에서 문서를 쿼리하려면 find() 메서드를 사용해야 합니다. 예를 들어 다음 문은 컬렉션에서 모든 문서를 검색합니다.

단일 문서에 많은 데이터가 포함된 컬렉션이 있다고 가정해 보겠습니다. teams 컬렉션이 있고 원하는 필드 몇 개만 선택합니다.

질문:

db.teams.find({});

출력:

단일 필드 선택

프로젝션 방법을 사용하여 MongoDB 컬렉션의 모든 문서에 대해 단일 또는 다중 필드 선택

프로젝션에는 여러 필드가 명시적으로 포함될 수 있습니다. find() 메서드는 다음 작업에서 쿼리와 일치하는 모든 페이지를 반환합니다.

컬렉션에서 선택한 필드만 검색하려는 경우 프로젝션 방법을 사용할 수 있습니다.

이를 위해서는 먼저 아래에 제공된 MongoDB 쿼리 구문을 이해해야 합니다.

db.collections.find(
    // basic filtering based on the passed-in key values
    {},
    // selecting the fields
    {});

두 번째 매개변수는 find() 메소드에 전달될 수 있습니다. findOne() 메서드와도 작동합니다.

이제 필드를 선택하겠습니다. 여기서 한 가지 트릭을 더 배워야 합니다. 키는 선택하려는 필드와 해당 값입니다.

필드 선택을 위한 값은 1입니다. 0은 필드 선택을 취소합니다.

이제 더 나은 이해를 위해 아래에 제공된 몇 가지 예를 볼 수 있습니다.

이름 필드만 선택

이 예제에는 아래에 제공된 다음 쿼리가 사용됩니다.

db.teams.find({},
{
  team: 1
})

출력:

단일 필드 선택 1

여기에서는 team 필드만 성공적으로 선택했습니다. 그러나 명시적으로 전달하지 않은 _id 필드도 포함되어 있습니다.

그러나 기본적으로 mongo 쿼리에는 항상 _id 필드가 있습니다.

_id 필드 선택 취소

다음 예에서는 _id 필드 자체를 선택 취소할 수 있습니다.

이에 대한 쿼리는 다음과 같습니다.

db.teams.find({},
{
  team: 1,
  _id: 0
})

출력:

단일 필드 선택 2

이름 및 포인트 필드만 선택하십시오.

다음 명령문은 team 이름과 points 필드만 가져옵니다.

이 예제에는 아래에 제공된 다음 쿼리가 사용됩니다.

db.teams.find({},
{
  team: 1,
  points: 1,
  _id: 0
})

출력:

단일 필드 선택 3

결론

따라서 이 MongoDB 자습서를 살펴본 후 반환할 필드를 지정하거나 제한하는 프로젝션을 통해 기본 쿼리 작업을 수행하여 MongoDB 컬렉션의 모든 문서에 대해 단일 또는 다중 필드를 선택하는 방법을 배웠습니다.

관련 문장 - MongoDB Projection