Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
MongoDB Branding Shape
Click here >
Docs Menu

내장된 문서의 필드에 대해 MongoDB Search 쿼리를 실행하는 방법

이 튜토리얼에서는 문서 배열 이 자체 중첩된 경우에도 문서 배열 내부의 필드에 대해 MongoDB Search 쿼리를 인덱스 하고 실행 방법을 보여줍니다. 이러한 필드에 대한 쿼리를 활성화 하려면 문서 필드를 embeddedDocuments 유형으로 인덱스 .

이 페이지의 튜토리얼은 다음 유형의 배열 내 필드에 대한 쿼리를 설명합니다.

  • 문서 배열.

  • 문서 내부의 문서 배열.

  • 문서 배열 안에 있는 문서 배열.

시작하기 전에 클러스터 필수 구성 요소에 설명된 요구 사항을 충족하는지 확인하세요.

섹션을 확장하여 튜토리얼에서 사용된 샘플 컬렉션, 인덱스 및 쿼리에 대해 자세히 알아보세요.

내장된 문서에 대해 쿼리를 실행하는 방법을 보여주기 위해 이 튜토리얼에서는 다음 단계를 안내합니다.

  1. 클러스터 에 내장된 문서가 포함된 schools 이라는 이름의 샘플 컬렉션 만듭니다.

  2. 다음 경로에 구성된 embeddedDocuments 필드를 사용하여 MongoDB Search 인덱스 설정합니다.

    • teachers 필드

    • teachers.classes 필드

    • clubs.sports 필드

  3. schools 컬렉션의 내장된 문서를 compoundembeddedDocumenttext를 이용해 검색하는 $search 쿼리를 실행합니다.

  4. 내장된 문서 필드에 대해 $searchMeta 쿼리를 실행하여 개수를 가져옵니다.

schools 샘플 컬렉션 에는 세 개의 문서가 포함되어 있습니다. 각 문서 에는 학교의 namemascot, 각 교사의 ``first``와 last 이름, subjectgrade를 포함하여 교사가 가르치는 classes, 그리고 다양한 clubs 사용 가능.

이 인덱스는 다음 문서를 배열로 지정합니다.

  • teachersteachers.classes 경로의 배열에 있는 문서는 embeddedDocuments로 인덱싱되고, 문서 내부의 필드는 동적으로 인덱싱됩니다.

  • teachers 경로의 배열에 있는 문서도 문서 유형으로 인덱싱되어 강조 표시를 지원하고 문서 내부의 필드가 동적으로 인덱싱됩니다.

  • clubs 필드의 문서는 동적 매핑이 활성화된 문서 유형으로 인덱싱되고, clubs.sports 필드의 문서 배열은 동적 매핑이 활성화된 embeddedDocuments 유형으로 인덱싱됩니다.

샘플은 Atlas Search schools 컬렉션에 내장된 문서를 쿼리합니다. 쿼리는 다음 파이프라인 단계를 사용합니다.

  • $search collection을 검색합니다.

  • $project 을(를) 사용하여 컬렉션에서 필드를 포함 및 제외하고 결과에 score 라는 필드를 추가합니다. 강조 표시 를 활성화하는 쿼리의 경우 $project 단계에서는 강조 표시 정보가 포함된 highlights 이라는 새 필드도 추가합니다.

이 튜토리얼에서는 다음 쿼리를 보여줍니다.

이 쿼리는 문서 배열 내의 필드에 대한 검색을 보여 줍니다.

teachers 경로에서 이름이 John인 교사를 검색하고 성이 Smith인 교사에 대한 기본 설정을 지정합니다. 또한 last 이름 필드를 강조 표시할 수 있습니다.

이 쿼리는 문서 내부에 중첩된 문서 배열 내부의 필드를 검색하는 방법을 보여줍니다.

학생들에게 clubs.sports 경로에서 dodgeball 또는 frisbee 경기를 할 수 있는 기회를 제공하는 스포츠 클럽이 있는 학교를 검색합니다.

이 쿼리는 다음 배열 내의 필드를 검색하는 복합 쿼리를 보여줍니다.

  • 문서 배열.

  • 문서 배열 내에 중첩된 문서 배열.

teachers.classes 경로에서 12th 학년 science 수업을 가르치는 교사가 있는 학교를 검색하며, Smith 성을 가진 교사가 해당 수업을 가르치는 학교를 선호합니다. 또한 문서의 teachers 배열 내에 중첩된 문서의 classes 배열 내의 subject 필드를 강조 표시 할 수 있습니다.

참고

클러스터 에 대한 튜토리얼에는 각 학년에서 수업을 제공하는 학교의 수를 $searchMeta 가져오는 쿼리 도 포함되어 있습니다.

이 튜토리얼에서는 내장된 문서의 필드에 대한 샘플 MongoDB Search 쿼리를 보여줍니다. 이러한 쿼리에 대해 자세히 학습 튜토리얼 정보를 참조하세요.