

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# マルチキーインデックス
<a name="indexes-multikey"></a>

配列値を持つフィールドの場合、マルチキーインデックスを使用すると、配列内の各要素のインデックスキーを作成できます。配列のインデックスを作成すると、配列の各要素のインデックスエントリが作成されます。

マルチキーインデックスは、アプリケーションが配列の値に基づいてドキュメントを頻繁にクエリまたはフィルタリングする場合に便利です。

## サポートされているインデックスプロパティ
<a name="indexes-multikey-properties"></a>


| オプション | 3.6 | 4.0 | 5.0 | 8.0 | Elastic クラスター | 
| --- | --- | --- | --- | --- | --- | 
| [name](index-property-name.md) | はい  | はい | はい | はい | はい | 
| [一意](index-property-unique.md) | はい  | はい | はい | はい | はい | 
| [スパース](index-property-sparse.md) \* | はい  | はい | はい | はい | はい | 
| [partialFilterExpression](index-property-partialfilterexpression.md) \* | いいえ | なし | はい | はい | いいえ | 
| [expireAfterSeconds](index-property-expireafterseconds.md) | はい  | はい | はい | はい | はい | 

\* `sparse`および `partialFilterExpression`オプションは、同じインデックス定義で一緒に使用することはできません。これらのオプションを使用してインデックスを作成しようとすると、次のエラーで失敗します。

```
Error in specification: cannot mix partialFilterExpression and sparse options
```

## マルチキーインデックスの作成
<a name="indexes-multikey-creating"></a>

`createIndex()` メソッドを使用して、マルチキーインデックスを作成します。メソッド構文は次のとおりです。 `db.collection.createIndex(<key>, <options>)`

`key` パラメータは、 フィールドとインデックスのソート順序を指定する JSON ドキュメントです。

```
{
  "<field>": <1 (ascending)|-1 (descending)>
}
```

`options` パラメータは、インデックスのオプションを指定する JSON ドキュメントです。

```
{
  "name": "<name>",
  "unique": <true | false>,
  "sparse": <true | false>,
  "partialFilterExpression": <filter expression>,
  "expireAfterSeconds": <seconds before expiry>
}
```

次の例では、 という名前の昇順でソートされた`categories`フィールドにマルチキーインデックスを作成します`book_categories`。

```
db.collection.createIndex(
  {
    "categories": 1
  },
  {
    "name": "book_categories"
  }
)
```

マルチキー[インデックスの作成例](index-properties.md)については、「インデックスプロパティ」を参照してください。