Docs Menu
Docs Home
/ /

MongoDB Search インデックスに保存されているソース フィールドの定義

storedSourceMongoDB Search インデックス定義の オプションは、 MongoDB Search が保存する必要があるソースドキュメント内のフィールドを指定します。バックエンドデータベースで暗黙的なクエリ時間検索の必要性が減るため、特定のユースケースでクエリのパフォーマンスを向上させるために を構成するとよいでしょう。storedSource MongoDB Search ではすべてのMongoDB Search フィールド タイプ のフィールドを保存できます。

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エディターを使用できます。


[ 言語を選択 ] ドロップダウン メニューを使用して、このページの手順のインターフェイスを設定します。


次の例では、title awards.winsコレクション内のドキュメントの フィールドと フィールドのみを保存します。ご希望の構成方法を選択したら、 sample_mflixデータベースの下のmoviesコレクションを選択します。

  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] をクリックします。

MongoDB Search に指定されたフィールドを保存するには、次の例のインデックス定義に行 5 から 10 を追加します。この例では、ドット表記を使用してネストされたフィールドを指定しています。

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 のドキュメントの title フィールドと awards.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

項目一覧