Docs Menu
Docs Home
/
MongoDB Atlas
/ / / /

オブジェクトとドキュメントのフィールドのインデックス作成方法

項目一覧

  • document 型の制限を確認する
  • document 型のインデックスを定義する
  • documentフィールド プロパティを構成する
  • document 型の例を試す

Atlas Search documentタイプを使用して、オブジェクトまたはドキュメントのフィールドにインデックスを付けることができます。

動的マッピングを有効にすると、Atlas Search はdocument型のフィールドを自動的にインデックス化します。 Atlas UI のビジュアル エディターまたはJSON エディターを使用して、 documentタイプのフィールドをインデックスできます。

Atlas Search documentタイプを使用して、配列内にあるオブジェクトまたはドキュメント内のフィールドをインデックスすることはできません。 代わりに、Atlas Search embeddedDocumentsタイプを使用して、配列の要素であるオブジェクトまたはドキュメント内のフィールドをインデックス化します。

documentタイプのインデックスを定義するには、Atlas UI で希望する構成方法を選択し、データベースとコレクションを選択します。

  1. [ Refine Your Indexをクリックしてインデックスを構成します。

  2. Field Mappingsセクションで、 Add FieldをクリックしてAdd Field Mappingウィンドウを開きます。

  3. [Customized Configuration] をクリックします。

  4. Field Nameドロップダウンからインデックスするフィールドを選択します。

    注意

    フィールド名の先頭にドル記号($)が含まれるフィールドにはインデックスを付けられません。

  5. Data Typeドロップダウンをクリックし、Document を選択します。

  6. Enable Dynamic Mapping設定を切り替えて、ドキュメント内のすべての動的インデックス作成可能なフィールドの動的インデックス作成を有効または無効にします。 詳しくは、「 構成するdocumentフィールド プロパティを参照してください。

  7. [Add] をクリックします。

  8. 動的マッピングを無効にした場合は、 Document型フィールドのAdd Child Fieldをクリックして、ドキュメント内のフィールドのフィールド マッピングを定義します。

以下は、 document型の JSON構文です。 デフォルトのインデックス定義を以下のように置き換えます。 フィールドの詳細については、「フィールド プロパティ」を参照してください。

1{
2 "mappings": {
3 "dynamic": true|false,
4 "fields": {
5 "<field-name>": {
6 "type": "document",
7 "dynamic": true|false,
8 "fields": {
9 "<field-name>": {
10 <field-mapping-definition>
11 }
12 }
13 }
14 }
15 }
16}

Atlas Search document型は次のパラメータを取ります。

オプション
タイプ
必要性
説明
default
type
string
必須
フィールド型を識別する、人間が判読できるラベル。 値はdocumentである必要があります。
dynamic
ブール値
任意

Atlas Search がすべてのフィールドと埋め込みドキュメントを再帰的にインデックス化するかどうかを示すフラグ。 document trueに設定すると、Atlas Search は、特定のデータ型のフィールドを除くすべてのフィールドと埋め込みドキュメントを再帰的にインデックス化します。

Atlas Search が動的にインデックスを作成しないフィールドを含むドキュメント内のすべてのフィールドにインデックスを付けるには、インデックス定義でフィールドを定義します。

省略する場合、またはfalseに設定されている場合は、インデックスを作成するフィールドを個別に指定する必要があります。

重要: Atlas Search は、検出されたデータ型のデフォルト設定を使用して、document 内のすべてのフィールドに動的にインデックスを作成します。Atlas Search は、dynamicfalse に設定して直接オーバーライドしない限り、document 下にネストされたすべてのドキュメントを動的にインデックス化します。

false
fields
ドキュメント
任意
フィールド名をフィールド定義にマッピングするドキュメント。 詳しくは、 のを参照してください。 これは、 dynamicが省略されているか、 falseに設定されている場合に必要です。

次のインデックス定義の例では、 sample_mflix.moviesコレクションを使用します。 サンプル データがすでにクラスターにロードされている場合は、Atlas UI のビジュアル エディターまたはJSONエディターを使用してインデックスを構成できます。 ご希望の構成方法を選択したら、データベースとコレクションを選択し、インデックスを微調整してフィールド マッピングを追加します。

インデックス定義は、 awardsフィールドをdocument型としてインデックス化します。 また、 awardsオブジェクト内のすべての動的にインデックス付け可能なフィールドを自動的にインデックス化するように Atlas Search を構成します。

  1. Add Field Mappingウィンドウで、 Field Nameドロップダウンからawardsを選択します。

  2. Data Typeドロップダウンをクリックし、Document を選択します。

  3. Enable Dynamic Mapping設定を切り替えて、ドキュメント内のすべての動的にインデックス付け可能なフィールドの動的インデックス作成を有効にします(動的インデックス作成がまだ有効になっていない場合)。

  4. [Add] をクリックします。

デフォルトのインデックス定義を、以下のインデックス定義で置き換えます。

1{
2 "mappings": {
3 "dynamic": false,
4 "fields": {
5 "awards": {
6 "type": "document",
7 "dynamic": true
8 }
9 }
10 }
11}

Tip

その他のインデックス定義例も参照してください

戻る

dateFacet