Docs Menu
Docs Home
/
Atlas
/ / /

MongoDB 검색 인덱스에 저장된 소스 필드 정의

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 옵션은 부울 값 또는 인덱스 정의 객체를 사용합니다.

설명

true

MongoDB Search가 문서의 모든 필드를 저장 하도록 지정합니다. 전체 문서를 저장하면 인덱싱 및 쿼리 중 성능에 큰 영향 수 있습니다. 자세히 학습 소스 필드 저장을 참조하세요.

false

MongoDB Search가 원본 소스 문서 저장 하지 않도록 지정합니다. 이는 storedSource 옵션의 기본값 입니다.

storedSource 옵션 객체에는 다음 필드 중 하나가 포함되어야 합니다.

필드
유형
설명

include

문자열 배열

저장 필드 이름 또는 점으로 구분된 필드 경로가 포함된 목록입니다. MongoDB Search는 지정된 필드 외에도 기본값 으로 _id 도 저장합니다.

exclude

문자열 배열

저장에서 제외할 필드 이름 또는 점으로 구분된 필드 경로가 포함된 목록입니다. 지정된 경우 MongoDB Search는 여기에 나열된 필드를 제외한 원본 문서를 저장합니다.

다음 인덱스 예제에서는 sample_mflix.movies 컬렉션 의 필드를 사용하여 storedSource 옵션을 사용하여 MongoDB Search에 저장 필드를 구성하는 방법을 보여 줍니다. mongosh, Atlas UI 비주얼 편집기 또는 Atlas UI JSON 편집기를 사용하여 인덱스를 구성할 수 있습니다.


언어 선택 드롭다운 메뉴를 사용하여 이 페이지의 절차에 대한 인터페이스를 설정하다.


다음 예제에서는 collection의 문서에 titleawards.wins 필드만 저장합니다. 원하는 구성 방법을 선택한 moviessample_mflix 데이터베이스에서 collection을 선택합니다.

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

  2. Stored Source Fields 섹션에서 Specified을 클릭합니다.

  3. Field Name 열의 드롭다운에서 awards.wins 을(를) 선택하고 Add 를 클릭합니다.

  4. 저장할 다른 필드를 지정하려면 Add Field 을 클릭합니다.

  5. Field Name 열의 드롭다운에서 title 을(를) 선택하고 Add 를 클릭합니다.

  6. 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}

다음 예에서는 directorsimdb.rating 를 제외한 모든 필드를 컬렉션의 문서에 저장합니다. 원하는 구성 방법을 선택한 후 sample_mflix 데이터베이스에서 movies 컬렉션을 선택합니다.

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

  2. Stored Source Fields 섹션에서 All Except Specified을 클릭합니다.

  3. Field Name 열의 드롭다운에서 directors 을(를) 선택하고 Add 를 클릭합니다.

  4. 제외할 다른 필드를 지정하려면 Add Field 을 클릭합니다.

  5. Field Name 열의 드롭다운에서 imdb.rating 을(를) 선택하고 Add 를 클릭합니다.

  6. 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 컬렉션을 선택합니다.

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

  2. Stored Source Fields 섹션에서 All을 클릭합니다.

  3. Save Changes를 클릭합니다.

다음 예제의 5 행을 인덱스 정의에 추가하여 모든 필드를 저장합니다.

1{
2 "mappings": {
3 "dynamic": true,
4 },
5 "storedSource": true,
6}

sample_mflix.movies 네임스페이스 에 대한 다음 예시 는 mongot의 문서에 titleawards.wins 필드만 저장합니다.

db.movies.createSearchIndex(
"default",
"definition": {
"mappings": {
"dynamic": true,
},
"storedSource": {
"include": [
"title",
"awards.wins"
]
}
}
)

sample_mflix.movies 네임스페이스 에 대한 다음 예시 에서는 directorsimdb.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,
}
)

돌아가기

uuid

이 페이지의 내용