翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
マルチキーインデックス
配列値を持つフィールドの場合、マルチキーインデックスを使用すると、配列内の各要素のインデックスキーを作成できます。配列のインデックスを作成すると、配列の各要素のインデックスエントリが作成されます。
マルチキーインデックスは、アプリケーションが配列の値に基づいてドキュメントを頻繁にクエリまたはフィルタリングする場合に便利です。
サポートされているインデックスプロパティ
| オプション | 3.6 | 4.0 | 5.0 | 8.0 | Elastic クラスター |
|---|---|---|---|---|---|
| name | はい | はい | はい | はい | はい |
| 一意 | はい | はい | はい | はい | はい |
| スパース * | はい | はい | はい | はい | はい |
| partialFilterExpression * | いいえ | なし | はい | はい | いいえ |
| expireAfterSeconds | はい | はい | はい | はい | はい |
* sparseおよび partialFilterExpressionオプションは、同じインデックス定義で一緒に使用することはできません。これらのオプションを使用してインデックスを作成しようとすると、次のエラーで失敗します。
Error in specification: cannot mix partialFilterExpression and sparse options
マルチキーインデックスの作成
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" } )
マルチキーインデックスの作成例については、「インデックスプロパティ」を参照してください。