Docs Menu
Docs Home
/
Atlas
/

インデックスの管理

インデックスは、クエリのパフォーマンスを向上させる特別なデータ構造です。インデックスは、コレクションのデータの一部を簡単に走査できる形式で保存します。 インデックスには、特定のフィールドまたはフィールド セットの値が、フィールド値の順に保存されます。

クエリのパフォーマンスを向上させるには、フィールド順でソートする操作やクエリで頻繁に表示されるフィールドにインデックスを構築します。

  • インデックス付きフィールドに対するクエリでは、インデックスを使用して、一致するドキュメントを見つけるためにスキャンする必要があるドキュメントの数を制限できます。

  • インデックス付きフィールドでソート操作を行うと、インデックス順で事前にソートされたドキュメントが返される場合があります。

インデックスの詳細については、「インデックス」を参照してください。

注意

Considerations

インデックスは、書き込み操作の動作に悪影響を与えます。書き込みと読み取りの比率が高いコレクションでは、挿入のたびにすべてのインデックスを更新する必要があるため、インデックスの使用コストは高くなります。インデックスに関する考慮事項の詳細なリストについては、「インデックスの運用上の考慮事項」を参照してください。

インデックスを作成、削除、または非表示にするには、次のいずれかのロールに帰属するアクセス権が必要です。

デフォルトでは、最大 3 つのインデックスを同時に構築できます。詳細については、「同時インデックス構築の最大数」を参照してください。

Indexesタブには、コレクションの既存のインデックスが一覧表示されます。

コレクションの Indexes タブにアクセスするには、左側のペインでコレクションをクリックし、 Indexes タブを選択します。

インデックス ビュー
クリックして拡大します

Atlas は、各インデックスについて、次の情報を表示します。

名称と定義

インデックスとキーの名前。

タイプ

通常のインデックス、テキスト インデックス、地理空間インデックス、またはハッシュされたインデックス。

サイズ

インデックスの大きさ。

使用法

インデックスが作成された時点、またはサーバーが最後に再起動された時点から、インデックスが lookup で使用された回数。

プロパティ

インデックスの特殊なプロパティ(一意性、部分性など)。

1

[インデックス] タブで、[Create Index] ボタンをクリックします。

2
  1. インデックス キーを指定します。

    • 既存のドキュメントフィールドをインデックス キーとして指定するには、ドロップダウンリストからフィールドを選択します。

    • どのドキュメントにも存在しないフィールドをインデックス キーとして指定するには、入力ボックスにフィールド名を入力します。

    • 複合インデックスを作成するには、[インデックス タイプ] ドロップダウンの横にあるアイコンをクリックします。

  2. 各フィールド名の右側にあるドロップダウンを使用して、インデックス タイプを指定します。次のいずれかのタイプを指定できます。

    • 上昇

    • 下降

    • 2dsphere

    • Text

Tip

ワイルドカード インデックスを指定する方法については、「ワイルドカード インデックスの作成」を参照してください。

3

Atlas は次のインデックスオプションをサポートしています。

オプション
説明
詳細情報

ユニークインデックスの作成

インデックス フィールドに重複する値が格納されていないことを確認します。

一意のインデックスのローリング ビルドは実行できません。unique index オプションを使用して、ローリング方式のインデックス構築を有効にすると、Atlas はエラーメッセージを表示して構成を拒否します。

インデックス名

インデックスの名前を指定します。

TTL インデックスを作成

インデックス化されたフィールド値から指定された秒数が経過すると、ドキュメントが自動的に削除されます。

部分フィルター式

指定されたフィルター式に一致するドキュメントのみをインデックスします。

以下に例を挙げます。

次の部分フィルタ式は、 timezoneフィールドが存在するドキュメントのみをインデックスします。

{ "timezone": { "$exists": true } }

ワイルドカード プロジェクション

インデックス内の指定されたプロジェクションと一致する未知のフィールドまたは任意のフィールドをサポートします。ワイルドカードプロジェクションを使用するには、インデックスフィールド名を $** に設定します。これにより、Atlas はドキュメント内のすべてのフィールド(_idを除く)を使用するように指示されます。

以下に例を挙げます。

次のワイルドカード プロジェクションのドキュメントを検討します。

{
"product_attributes.elements" : 1,
"product_attributes.resistance" : 1
}

インデックス フィールド名が $** の場合、インデックスにはそのプロジェクションのフィールドの値のみが含まれます。

カスタム照合の使用

テキストボックスに照合ドキュメントを入力するか貼り付けて、インデックスのカスタム照合を作成します。

スパースインデックスの作成

インデックスは、インデックス付きフィールドが欠落しているドキュメントをスキップします。

ローリング プロセスで構築

インデックスビルドによるパフォーマンスへの影響を最小限に抑えることができます。

ローリング インデックス構築は、特定の条件を満たした場合にのみ成功します。インデックス構築に成功するようにするには、再起動ループをトリガーすることが多い次の設計パターンを避けてください。

M10+ クラスターではのみローリング インデックスをビルドできます。

4

Data Explorerでは Atlas Search または Atlas ベクトル検索インデックスを作成できません。 コレクションの Atlas Search および Atlas ベクトル検索インデックスを管理するには、以下を参照してください。

不明なフィールドや任意のフィールドに対するクエリをサポートするには、ワイルドカード インデックスを作成します。Atlas でワイルドカードを作成するには、ワイルドカードフィールド(<field>.$**)を Select a field name 入力に手動で入力します。

ドキュメントにuserMetadataオブジェクトが含まれるコレクションを検討します。userMetadataオブジェクト内のフィールドはドキュメントによって異なる場合があります。

userMetadata にワイルドカード インデックスを作成して、オブジェクト内のすべての潜在的なフィールドを考慮することができます。Select a field name入力に次の内容を入力します。

userMetadata.$**

ワイルドカード インデックスのタイプ(ascendingまたはdescending )を指定して、 Create Indexをクリックします。

Atlas は新しいインデックスのタイプを Wildcard として表示します。

クエリ プランナーからインデックスを非表示にすると、実際にインデックスを削除せずに、インデックスを削除した場合の潜在的な影響を評価できます。

1

Indexes タブで、非表示にしたいインデックスにカーソルを合わせます。

2

選択したインデックスにカーソルを合わせると右側に表示される、閉じた目のアイコンをクリックします。

3

ダイアログボックスで、非表示にするインデックスを確認します。選択を確認すると、Properties列の下にHiddenバッジが表示されます。

インデックスを再表示するには、手順 1-3 を繰り返します。インデックスを再表示すると、Atlas では Properties 列から Hidden バッジが取り除かれます。

1

[インデックス] タブからインデックスを削除するには、そのインデックスのごみ箱アイコンをクリックします。確認ダイアログが表示されます。

2

ダイアログで、削除するインデックスの名前を入力します。

3

戻る

AI & Data Usage

項目一覧