Make the MongoDB docs better! We value your opinion. Share your feedback for a chance to win $100.
Click here >
Docs Menu
Docs Home
/ /

配列の要素のインデックス作成方法

配列のインデックス作成において、 MongoDB Search では配列要素のデータ型のみが必要です。インデックス定義でデータが配列([])に含まれていることを指定する必要はありません。

動的マッピングを有効にすると、 MongoDB Search は配列内の動的にインデックス付け可能なデータ型の要素を自動的にインデックス化します。MongoDB Search が動的にインデックスするデータ型の詳細については、MongoDB Search フィールド タイプを参照してください。

Atlas UI のビジュアル エディターまたはJSON エディターを使用して、配列内の要素のインデックスを定義できます。

MongoDB Search は、インデックス作成中にフィールドをフラット化することで、配列内のサポートされているデータ型をインデックス化します。

次のドキュメントを検討してください。

doc1 = { a: {b: [[<value1>, <value2>], <value3>] }}
doc2 = { a: {b: [<value1>, <value2>, <value3>] } }
doc3 = { a: [{ b: <value1>}, {b: <value2>}, {b: <value3>}] }

MongoDB Search は、インデックス作成中に前述の配列を次のようにフラット化します。

LuceneDoc<n> = {"a.b":[<value1>,<value2>,<value3>]}

ドキュメントまたはオブジェクトの配列内のフィールドをクエリするには、 embeddedDocuments型を使用してオブジェクトの配列を含むフィールドをインデックスする必要があります。

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

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

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

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

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

  5. [ Data Typeドロップダウンをクリックし、インデックスを作成する配列要素のデータ型を選択します。 選択した型のプロパティを構成する方法の詳細については、選択した型のドキュメントを参照してください。

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

以下は、配列内の要素にインデックスを作成するための JSON構文です。 デフォルトのインデックス定義を以下のように置き換えます。

1{
2 "mappings": {
3 "dynamic": true|false,
4 "fields": {
5 "<array-field-name>": {
6 "type": "<array-element-data-type>"
7 }
8 }
9 }
10}

The following index definition example uses the sample_mflix.movies collection. If you have the sample data already loaded on your cluster, you can use the Visual Editor or JSON Editor in the Atlas UI to configure the index. After you select your preferred configuration method, select the database and collection, and refine your index to add field mappings.

次のインデックス定義は、string 値の配列を含むgenresフィールドをインデックス化します。

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

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

  3. String Propertiesのデフォルト設定は保持します。

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

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

1{
2 "mappings": {
3 "fields": {
4 "genres": {
5 "type": "string"
6 }
7 }
8 }
9}

戻る

フィールド マッピング

項目一覧