インデックスを作成する際に、インデックスにカスタム名を付けることができます。インデックスに名前を付けると、コレクションのさまざまなインデックスを区別するのに役立ちます。たとえば、インデックスに異なる名前が付いている場合は、クエリプランの explain の結果でクエリにより使用されるインデックスを、より簡単に識別できます。
インデックス名を指定するには、インデックスを作成するときに name オプションを含めます。
db.<collection>.createIndex( { <field>: <value> }, { name: "<indexName>" })このタスクについて
インデックス名を指定する前に、以下のことを考慮します。
インデックス名は一意である必要があります。既存のインデックス名を使用してインデックスを作成すると、エラーが返されます。
既存のインデックスの名前は変更できません。代わりに、インデックスを削除して新しい名前で再作成する必要があります。
デフォルトのインデックス名
インデックスの作成時に名前を指定しない場合、システムは各インデックス キー フィールドと値をアンダースコアで連結して名前を生成します。以下に例を挙げます。
Index | デフォルト名 |
|---|---|
|
|
|
|
|
|
|
|
手順
このページの例では、sample_mflix データセット のデータを使用しています。自己管理型 MongoDB 配置にこのデータセットをロードする方法の詳細については、「サンプル データセットのロード」を参照してください。サンプル データベースに何らかの変更を加えた場合は、今ページの例を実行するには、データベースを削除して再作成する必要がある可能性があります。
name フィールドと text フィールドにテキスト インデックスを作成します。インデックス name を CommentsTextIndex に設定します。
db.comments.createIndex( { name: "text", text: "text" }, { name: "CommentsTextIndex" })CommentsTextIndex結果
インデックスを作成したら、db.collection.getIndexes() メソッドを使用してインデックス名を取得できます。
db.comments.getIndexes()[ { v: 2, key: { _id: 1 }, name: '_id_' }, { v: 2, key: { _fts: 'text', _ftsx: 1 }, name: 'CommentsTextIndex', weights: { name: 1, text: 1 }, default_language: 'english', language_override: 'language', textIndexVersion: 3 }]詳細
インデックスの作成方法については、「インデックスの作成」を参照してください。
インデックス プロパティの詳細については、「インデックス プロパティ」を参照してください。