이 튜토리얼에서는 문서 배열 이 자체 중첩된 경우에도 문서 배열 내부의 필드에 대해 MongoDB Search 쿼리를 인덱스 하고 실행 방법을 보여줍니다. 이러한 필드에 대한 쿼리를 활성화 하려면 문서 필드를 embeddedDocuments 유형으로 인덱스 .
이 페이지의 튜토리얼은 다음 유형의 배열 내 필드에 대한 쿼리를 설명합니다.
문서 배열.
문서 내부의 문서 배열.
문서 배열 안에 있는 문서 배열.
시작하기 전에 클러스터 필수 구성 요소에 설명된 요구 사항을 충족하는지 확인하세요.
내장된 문서에 대해 쿼리를 실행하는 방법을 보여주기 위해 이 튜토리얼에서는 다음 단계를 안내합니다.
클러스터 에 내장된 문서가 포함된
schools
이라는 이름의 샘플 컬렉션 만듭니다.다음 경로에 구성된 embeddedDocuments 필드를 사용하여 MongoDB Search 인덱스 설정합니다.
teachers
필드teachers.classes
필드clubs.sports
필드
schools
컬렉션의 내장된 문서를 compound와 embeddedDocument 및 text를 이용해 검색하는$search
쿼리를 실행합니다.내장된 문서 필드에 대해
$searchMeta
쿼리를 실행하여 개수를 가져옵니다.
컬렉션에 대한 정보
schools
샘플 컬렉션 에는 세 개의 문서가 포함되어 있습니다. 각 문서 에는 학교의 name
및 mascot
, 각 교사의 ``first``와 last
이름, subject
및 grade
를 포함하여 교사가 가르치는 classes
, 그리고 다양한 clubs
사용 가능.
인덱스 정보
이 인덱스는 다음 문서를 배열로 지정합니다.
쿼리 정보
샘플은 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 쿼리를 보여줍니다. 이러한 쿼리에 대해 자세히 학습 튜토리얼 정보를 참조하세요.