Join us at MongoDB.local London on 7 May to unlock new possibilities for your data. Use WEB50 to save 50%.
Register now >
Docs Menu
Docs Home
/ /

インデックスの管理

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

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

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

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

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

注意

Considerations

Indexes have some negative performance impact on write operations. For collections with high write-to-read ratio, indexes are expensive since each insert must also update any indexes. For a detailed list of considerations for indexes, see Operational Considerations for Indexes.

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

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

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

各インデックスについて、Compass では次の情報が表示されます。

名称と定義

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

タイプ

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

サイズ

インデックスの大きさ。

使用法

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

WARNING: The Usage metrics show index usage statistics only for the node that Compass is currently connected to and should only be used for informational purposes. For more comprehensive index usage statistics, run the $indexStats aggregation stage on each node.

プロパティ

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

  • MongoDB Compass Readonly Editionではインデックスの作成、非表示、および削除は許可されていません。

  • 暗号化されたフィールドではインデックスを作成しないでください。Queryable Encryptionを使用する暗号化されたフィールドにインデックスを作成すると、パフォーマンスに悪影響が生じます。代わりに、__safeContent__フィールドにインデックスを作成して、暗号化されたフィールドに対するクエリをサポートできます。

  • 配置がローカルで、Atlas クラスター階層が M10 以上で、MongoDB 7.0 以上を実行している場合は、Compass で Atlas Search インデックスを管理できます。

    Tip

    以前のバージョンの MongoDB が動作しているクラスターの場合は、Atlas UI、 Atlas CLI 、またはAtlas Administration API を使用して Atlas Search インデックスを管理できます。

1

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

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

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

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

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

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

    • 上昇

    • 下降

    • 2dsphere

    • Text

Tip

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

3

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

オプション
説明
詳細情報

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

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

インデックス名

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

TTL インデックスを作成

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

部分フィルター式

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

以下に例を挙げます。

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

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

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

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

以下に例を挙げます。

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

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

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

カスタム照合の使用

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

4

Atlas Search インデックスを使用すると、Atlas Search 内のデータをクエリできます。詳細については、 MongoDB Search インデックスの作成と管理 を参照してください。

Atlas ベクトル検索インデックスを使えば、ベクトルデータおよびその他のデータ型にインデックスことができ、インデックスされたフィールドのセマンティック検索が容易になります。詳細については、 MongoDB ベクトル検索インデックスの作成を参照してください。

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

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

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

userMetadata.$**

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

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

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

1

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

2

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

3

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

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

1

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

2

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

3

戻る

Compass のインテリジェント 支援

項目一覧