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