インデックスは、クエリのパフォーマンスを向上させる特別なデータ構造です。インデックスは、コレクションのデータの一部を簡単に走査できる形式で保存します。 インデックスには、特定のフィールドまたはフィールド セットの値が、フィールド値の順に保存されます。
クエリのパフォーマンスを向上させるには、フィールド順でソートする操作やクエリで頻繁に表示されるフィールドにインデックスを構築します。
インデックス付きフィールドに対するクエリでは、インデックスを使用して、一致するドキュメントを見つけるためにスキャンする必要があるドキュメントの数を制限できます。
インデックス付きフィールドでソート操作を行うと、インデックス順で事前にソートされたドキュメントが返される場合があります。
インデックスの詳細については、「インデックス」を参照してください。
注意
Considerations
インデックスは、書き込み操作の動作に悪影響を与えます。書き込みと読み取りの比率が高いコレクションでは、挿入のたびにすべてのインデックスを更新する必要があるため、インデックスの使用コストは高くなります。インデックスに関する考慮事項の詳細なリストについては、「インデックスの運用上の考慮事項」を参照してください。
必須のロール
インデックスを作成、削除、または非表示にするには、次のいずれかのロールに帰属するアクセス権が必要です。
Considerations
デフォルトでは、最大 3 つのインデックスを同時に構築できます。詳細については、「同時インデックス構築の最大数」を参照してください。
Indexes Tab
Indexesタブには、コレクションの既存のインデックスが一覧表示されます。
コレクションの Indexesタブにアクセスするには、
AtlasGoData ExplorerAtlas で、プロジェクトの ページにGoします。
まだ表示されていない場合は、プロジェクトを含む組織をナビゲーション バーの Organizations メニューで選択します。
まだ表示されていない場合は、ナビゲーション バーの Projects メニューからプロジェクトを選択します。
サイドバーで、 Database見出しの下のData Explorerをクリックします。
Data Explorerが表示されます。
注意
また、Clusters ページに移動し、Shortcuts 見出しの下の Data Explorer をクリックします。

Atlas は、各インデックスについて、次の情報を表示します。
名称と定義 | インデックスとキーの名前。 |
タイプ | 通常のインデックス、テキスト インデックス、地理空間インデックス、またはハッシュされたインデックス。 |
サイズ | インデックスの大きさ。 |
使用法 | インデックスが作成された時点、またはサーバーが最後に再起動された時点から、インデックスが lookup で使用された回数。 |
プロパティ | インデックスの特殊なプロパティ(一意性、部分性など)。 |
インデックスの作成
インデックス作成ダイアログを開く
[インデックス] タブで、[Create Index] ボタンをクリックします。
インデックスにフィールドを追加する
インデックス キーを指定します。
既存のドキュメントフィールドをインデックス キーとして指定するには、ドロップダウンリストからフィールドを選択します。
どのドキュメントにも存在しないフィールドをインデックス キーとして指定するには、入力ボックスにフィールド名を入力します。
複合インデックスを作成するには、[インデックス タイプ] ドロップダウンの横にあるアイコンをクリックします。
各フィールド名の右側にあるドロップダウンを使用して、インデックス タイプを指定します。次のいずれかのタイプを指定できます。
上昇
下降
2dsphere
Text
Tip
ワイルドカード インデックスを指定する方法については、「ワイルドカード インデックスの作成」を参照してください。
オプション。 インデックス オプションの指定
Atlas は次のインデックスオプションをサポートしています。
オプション | 説明 | 詳細情報 | ||||
---|---|---|---|---|---|---|
ユニークインデックスの作成 | インデックス フィールドに重複する値が格納されていないことを確認します。 一意のインデックスのローリング ビルドは実行できません。 | |||||
インデックス名 | インデックスの名前を指定します。 | |||||
TTL インデックスを作成 | インデックス化されたフィールド値から指定された秒数が経過すると、ドキュメントが自動的に削除されます。 | |||||
部分フィルター式 | 指定されたフィルター式に一致するドキュメントのみをインデックスします。 以下に例を挙げます。 次の部分フィルタ式は、
| |||||
ワイルドカード プロジェクション | インデックス内の指定されたプロジェクションと一致する未知のフィールドまたは任意のフィールドをサポートします。ワイルドカードプロジェクションを使用するには、インデックスフィールド名を 以下に例を挙げます。 次のワイルドカード プロジェクションのドキュメントを検討します。
インデックス フィールド名が | |||||
カスタム照合の使用 | テキストボックスに照合ドキュメントを入力するか貼り付けて、インデックスのカスタム照合を作成します。 | |||||
スパースインデックスの作成 | インデックスは、インデックス付きフィールドが欠落しているドキュメントをスキップします。 | |||||
ローリング プロセスで構築 | インデックスビルドによるパフォーマンスへの影響を最小限に抑えることができます。 重要ローリング方式でインデックスをビルドすると、クラスターの回復力が低下し、インデックス構築時間が増えます。通常のインデックスビルドがニーズを満たせない場合にのみ、ローリングインデックスビルドを使用することをお勧めします。 警告ローリングインデックスと複製されたインデックス構築プロセスを同時に実行すると、ビルドの失敗やクラッシュ ループなどの予期しない問題が発生する可能性があるため、避けてください。 M10+ クラスターではのみローリング インデックスをビルドできます。 ローリングインデックス構築中に、Atlas は各ノードをレプリカセットから取得し、スタンドアロンモードで開始してインデックスの構築を開始し、それをレプリカセットに返します。このプロセスは、クラスター内の各ノードに対してローリング シーケンスで繰り返されます。 Atlas Search がオフラインでインデックスをビルドしている間は、ノードがダウンしているように表示される場合があります。これは期待される動作であり、問題ではありません。 |
MongoDB ベクトル検索とMongoDB Search インデックス
Data ExplorerではMongoDB Search またはMongoDB ベクトル検索インデックスを作成できません。コレクションのMongoDB Search およびMongoDB ベクトル検索インデックスを管理するには、以下を参照してください。
ワイルドカード インデックスの作成
不明なフィールドや任意のフィールドに対するクエリをサポートするには、ワイルドカード インデックスを作成します。Atlas でワイルドカードを作成するには、ワイルドカードフィールド(<field>.$**
)を Select a field name 入力に手動で入力します。
例
ドキュメントにuserMetadata
オブジェクトが含まれるコレクションを検討します。userMetadata
オブジェクト内のフィールドはドキュメントによって異なる場合があります。
userMetadata
にワイルドカード インデックスを作成して、オブジェクト内のすべての潜在的なフィールドを考慮することができます。Select a field name入力に次の内容を入力します。
userMetadata.$**
ワイルドカード インデックスのタイプ(ascending
またはdescending
)を指定して、 Create Indexをクリックします。
Atlas は新しいインデックスのタイプを Wildcard として表示します。
インデックスの非表示または再表示
クエリ プランナーからインデックスを非表示にすると、実際にインデックスを削除せずに、インデックスを削除した場合の潜在的な影響を評価できます。
インデックスの削除
インデックスを削除するには、ゴミ箱アイコンをクリックします。
[インデックス] タブからインデックスを削除するには、そのインデックスのごみ箱アイコンをクリックします。確認ダイアログが表示されます。