このページでは、MongoDB で作成できるインデックスの種類について説明します。異なるインデックス タイプは、異なるタイプのデータとクエリをサポートします。
単一フィールド インデックス
単一のフィールド インデックスは、コレクション内の各ドキュメントの単一のフィールドからデータを収集してソートします。
この図は、単一のフィールド score のインデックスを示しています。
詳細については、「単一フィールド インデックス」を参照してください。
複合インデックス
複合インデックスは、コレクション内の各ドキュメントの複数のフィールド値からデータを収集してソートします。複合インデックスを使用して、インデックスの最初のフィールドまたは任意のプレフィックス フィールドをクエリすることができます。複合インデックス内のフィールドの順序は非常に重要です。複合インデックスによって作成された B木は、インデックスがフィールドを指定する順序でソートされたデータを保存します。
たとえば、次の画像は、ドキュメントが最初に userid によって昇順(アルファベット順)で保存されている複合インデックスを示しています。次に、各 userid の scores が降順でソートされます。
詳細については、「複合インデックス」を参照してください。
Multikey Index
マルチキー インデックスは、配列に格納されたデータを収集し、ソートします。
マルチキーのタイプを明示的に指定する必要はありません。配列値を含むフィールドにインデックスを作成すると、MongoDB は自動的にそのインデックスをマルチキー インデックスに設定します。
この図は、addr.zip フィールドのマルチキー インデックスを示しています。
詳細については、「マルチキー インデックス」を参照してください。
地理空間インデックス
地理空間インデックスにより、地理空間座標データに対するクエリのパフォーマンスが向上します。詳細については、「地理空間インデックス」を参照してください。
MongoDB は 2 種類の地理空間インデックスを提供します。
平面ジオメトリを使用して結果を返す 2D インデックス
球状ジオメトリを使用して結果を返す 2dsphere インデックス
Text Index
テキストインデックスは、文字列コンテンツを含むフィールドでのテキスト検索クエリをサポートします。
詳細については、「自己管理型配置のテキスト インデックス 」を参照してください。
注意
MongoDB Search またはベクトル検索を使用する
MongoDB は、次のテキスト検索ソリューションも提供しています。
MongoDB Search は、オンプレミスのテキスト検索と比較して、パフォーマンスと機能が向上しています。
ベクトル検索 は、セマンティック検索、ハイブリッド検索、および生成検索を実行するためのベクトル検索機能を提供します。
ハッシュされたインデックス
ハッシュされたインデックスはハッシュされたシャーディングをサポートします。ハッシュされたインデックスは、フィールドの値のハッシュをインデックスします。
詳細については、「ハッシュされたインデックス」を参照してください。
クラスター化されたインデックス
バージョン 5.3 で追加。
クラスター化されたインデックスは、クラスター化されたコレクションがデータを格納する順序を指定します。クラスター化されたインデックスを使用して作成されたコレクションは、クラスター化されたコレクションと呼ばれます。
クラスター化されたインデックスを使用してコレクションを作成する方法については、「クラスター化されたコレクションの例」を参照してください。