Docs Menu
Docs Home
/
MongoDB Compass
/

インデックスの管理

項目一覧

  • Indexes Tab
  • インデックスの作成
  • インデックスの非表示または再表示
  • インデックスの削除
  • 制限

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

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

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

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

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

注意

Considerations

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

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

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

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

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

名称と定義
インデックスとキーの名前。
タイプ
通常のインデックス、テキスト インデックス、地理空間インデックス、またはハッシュされたインデックス。
サイズ
インデックスの大きさ。
使用法
インデックスが作成された時点、またはサーバーが最後に再起動された時点から、インデックスが lookup で使用された回数。
プロパティ
インデックスの特殊なプロパティ(一意性、部分性など)。
1

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

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

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

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

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

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

    • 上昇

    • 下降

    • 2dsphere

    • Text

Tip

以下も参照してください。

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

3

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

オプション
説明
詳細情報
ユニークインデックスの作成
インデックス フィールドに重複する値が格納されていないことを確認します。
インデックス名
インデックスの名前を指定します。
TTL インデックスを作成
インデックス化されたフィールド値から指定された秒数が経過すると、ドキュメントが自動的に削除されます。
部分フィルター式

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

以下に例を挙げます。

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

{ "timezone": { "$exists": true } }
ワイルドカード プロジェクション(MongoDB 4.2 の新機能

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

以下に例を挙げます。

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

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

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

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

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

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

バージョン 4.2 の新機能

不明なフィールドや任意のフィールドに対するクエリをサポートするには、ワイルドカード インデックスを作成します。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
  • MongoDB Compass Readonly Editionではインデックスの作成、非表示、および削除は許可されていません。

  • Data Lake に接続している場合、Indexes タブは使用できません。

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

    Tip

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

戻る

AI & Data Usage