Atlas Search 인덱스에 저장된 소스 필드 정의
Atlas Search 인덱스 정의의 storedSource
옵션은 Atlas Search가 저장해야 하는 소스 문서의 필드를 지정합니다. 특정 사용 사례에서 storedSource
를 구성하면 백엔드 데이터베이스에서 암묵적인 쿼리 시간 조회의 필요성이 줄어들어 쿼리 성능이 향상될 수 있습니다. Atlas Search에서 모든 데이터 유형의 필드를 저장할 수 있습니다.
Atlas Search는 저장된 필드를 인덱싱하지 않습니다. 따라서 필드에서 쿼리를 실행하려면 필드를 별도로 인덱싱해야 합니다. 쿼리 시 returnStoredSource 옵션을 사용해 저장된 필드를 조회할 수도 있습니다.
참고
storedSource
은 다음 버전 중 하나를 실행하는 Atlas 클러스터에서만 사용할 수 있습니다.
MongoDB 5.0.6+
MongoDB 6.0+
MongoDB 7.0+
저장된 필드를 조회하는 방법에 대해 자세히 알아보려면 저장된 소스 필드 반환을 참조하세요.
구문
인덱스 정의에서 storedSource
옵션의 구문은 다음과 같습니다.
{ ..., "storedSource": true | false | { "include" | "exclude": [ "<field-name>", ... ] } }
옵션
storedSource
옵션은 부울 값 또는 인덱스 정의 의 객체를 사용합니다.
부울 값
값 | 설명 |
---|---|
true | Atlas Search가 문서의 모든 필드를 저장하도록 지정합니다. 전체 문서를 저장하면 인덱싱 및 쿼리 중 성능에 큰 영향을 미칠 수 있습니다. 자세한 내용은 소스 필드 저장을 참조하세요. |
false | Atlas Search가 원본 소스 문서를 저장하지 않도록 지정합니다. 이는 storedSource 옵션의 기본값입니다. |
객체
storedSource
옵션 객체는 다음 필드 중 하나를 허용합니다.
참고
객체에는 include
또는 exclude
가 포함되어야 합니다.
필드 | 유형 | 설명 |
---|---|---|
include | 문자열 배열 | 저장할 필드 이름 또는 점으로 구분된 필드 경로가 포함된 목록입니다. Atlas Search는 지정된 필드 외에도 기본적으로 _id 도 저장합니다. |
exclude | 문자열 배열 | 저장에서 제외할 필드 이름 또는 점으로 구분된 필드의 경로가 포함된 목록입니다. 지정된 경우, Atlas Search는 여기에 나열된 필드를 제외한 원본 문서를 저장합니다. |
예시
다음 인덱스 예제에서는 collection의 필드를 사용하여 sample_mflix.movies
Atlas Search 옵션을 사용하여 Atlas Search에 저장할 필드를 구성하는 storedSource
방법을 보여 줍니다. Atlas UI의 비주얼 편집기 또는 JSON 편집기를 사용하여 인덱스를 구성할 수 있습니다.
예시
다음 예제에서는 collection의 문서에 title
및 awards.wins
필드만 저장합니다. 원하는 구성 방법을 선택한 movies
후 sample_mflix
데이터베이스에서 collection을 선택합니다.
인덱스를 구성하려면 Refine Your Index를 클릭합니다.
Stored Source Fields 섹션에서 Specified을 클릭합니다.
Field Name 열의 드롭다운에서
awards.wins
을(를) 선택하고 Add 를 클릭합니다.저장할 다른 필드를 지정하려면 Add Field 을 클릭합니다.
Field Name 열의 드롭다운에서
title
을(를) 선택하고 Add 를 클릭합니다.Save Changes를 클릭합니다.
다음 예제의 5~10 행을 인덱스 정의에 추가하여 Atlas Search에 필드를 저장합니다. 이 예에서는 점 표기법을 사용하여 중첩된 필드를 지정합니다.
1 { 2 "mappings": { 3 ... 4 }, 5 "storedSource": { 6 "include": [ 7 "title", 8 "awards.wins" 9 ] 10 }, 11 ... 12 }
예시
다음 예에서는 directors
및 imdb.rating
를 제외한 모든 필드를 컬렉션의 문서에 저장합니다. 원하는 구성 방법을 선택한 후 sample_mflix
데이터베이스에서 movies
컬렉션을 선택합니다.
인덱스를 구성하려면 Refine Your Index을(를) 클릭합니다.
Stored Source Fields 섹션에서 All Except Specified을 클릭합니다.
Field Name 열의 드롭다운에서
directors
을(를) 선택하고 Add 를 클릭합니다.제외할 다른 필드를 지정하려면 Add Field 을 클릭합니다.
Field Name 열의 드롭다운에서
imdb.rating
을(를) 선택하고 Add 를 클릭합니다.Save Changes를 클릭합니다.
다음 예시의 5~10 행을 인덱스 정의에 추가하여 필드를 제외합니다. 이 예시에서는 점 표기법을 사용하여 중첩된 필드를 지정합니다.
1 { 2 "mappings": { 3 ... 4 }, 5 "storedSource": { 6 "exclude": [ 7 "directors", 8 "imdb.rating" 9 ] 10 }, 11 ... 12 }
예시
다음 예제에서는 컬렉션의 문서에 있는 모든 필드를 저장합니다. 원하는 구성 방법을 선택한 후 sample_mflix
데이터베이스에서 movies
컬렉션을 선택합니다.
인덱스를 구성하려면 Refine Your Index을(를) 클릭합니다.
Stored Source Fields 섹션에서 All을 클릭합니다.
Save Changes를 클릭합니다.
다음 예제의 5 행을 인덱스 정의에 추가하여 모든 필드를 저장합니다.
1 { 2 "mappings": { 3 ... 4 }, 5 "storedSource": true, 6 ... 7 }