문서 메뉴
문서 홈
/
MongoDB 아틀라스
/ / / /

배열의 요소를 인덱스하는 방법

이 페이지의 내용

  • Atlas Search 하나요?
  • 배열의 객체를 인덱싱하려면 어떻게 해야 하나요?
  • 제한 사항 검토
  • 배열 요소에 대한 인덱스 정의
  • 배열 요소 인덱싱 예제 사용해 보기

인덱싱 배열의 경우, Atlas Search에는 배열 요소의 데이터 유형만 필요합니다. 인덱스 정의에서 데이터가 배열([])에 포함되도록 지정할 필요는 없습니다.

동적 매핑 을 활성화하면 Atlas Search는 배열 내에서 동적으로 인덱싱할 수 있는 데이터 유형의 요소를 자동으로 인덱싱합니다. Atlas Search가 동적으로 인덱싱하는 데이터 유형에 대해 자세히 알아보려면 데이터 유형을 참조하세요.

Atlas UI의 비주얼 편집기 또는 JSON 편집기 를 사용하여 배열의 요소에 대한 인덱스를 정의할 수 있습니다.

Atlas Search는 인덱싱 중에 필드를 평면화하여 배열 내에서 지원되는 데이터 유형 을 인덱싱합니다.

예제

다음 문서를 고려하세요.

doc1 = { a: {b: [[<value1>, <value2>], <value3>] }}
doc2 = { a: {b: [<value1>, <value2>, <value3>] } }
doc3 = { a: [{ b: <value1>}, {b: <value2>}, {b: <value3>}] }

Atlas Search는 인덱싱 중에 다음과 유사하게 이전 배열을 평면화합니다.

LuceneDoc<n> = {"a.b":[<value1>,<value2>,<value3>]}

문서 또는 객체 배열 내의 필드를 쿼리하려면 embeddedDocuments 유형을 사용하여 객체 배열이 포함된 필드를 인덱싱해야 합니다.

필드 유형이 배열에 포함되어 있거나 배열에 포함된 문서에 있는 경우 Atlas Search는 다음 Atlas Search 필드 유형을 인덱싱하지 않습니다.

배열 요소의 인덱스를 정의하려면 Atlas UI에서 원하는 구성 방법을 선택한 다음 데이터베이스와 컬렉션을 선택하세요.

  1. 인덱스를 구성하려면 Refine Your Index 을 클릭합니다.

  2. Field Mappings 섹션에서 Add Field Mapping 을 클릭하여 Add Field Mapping창을 엽니다.

  3. Customized Configuration를 클릭합니다.

  4. Field Name 드롭다운에서 인덱싱할 배열 유형의 필드를 선택합니다.

  5. Data Type 드롭다운을 클릭하고 인덱싱하려는 배열 요소의 데이터 유형을 선택합니다. 선택한 유형의 속성을 구성하는 방법에 대해 자세히 알아보려면 선택한 유형에 대한 설명서를 참조하세요.

  6. Add를 클릭합니다.

다음은 배열 내부의 요소를 인덱싱하기 위한 JSON 구문입니다. 기본 인덱스 정의를 다음으로 바꿉니다.

1{
2 "mappings": {
3 "dynamic": true|false,
4 "fields": {
5 "<array-field-name>": {
6 "type": "<array-element-data-type>"
7 }
8 }
9 }
10}

다음 인덱스 정의 예시에서는 sample_mflix.movies 컬렉션을 사용합니다. cluster에 이미 샘플 데이터가 로드되어 있는 경우, Atlas UI의 Visual Editor 또는 JSON Editor를 사용하여 인덱스를 구성할 수 있습니다. 원하는 구성 방법을 선택한 후 데이터베이스와 컬렉션을 선택하고 인덱스를 구체화하여 필드 매핑을 추가합니다.

다음 인덱스 정의는 string 값 배열이 포함된 genres 필드를 인덱싱합니다.

  1. Add Field Mapping 창의 Field Name 드롭다운에서 genres 을 선택합니다.

  2. Data Type 드롭다운을 클릭하여 String를 선택합니다.

  3. String Properties 에 대한 기본 설정을 유지합니다.

  4. Add를 클릭합니다.

기본 인덱스 정의를 다음 인덱스 정의로 바꾸세요.

1{
2 "mappings": {
3 "fields": {
4 "genres": {
5 "type": "string"
6 }
7 }
8 }
9}

돌아가기

2: 필드 매핑 정의

다음

자동 완성 기능