Docs Menu

インデックス ビルダ

このガイドでは、MongoDB Java ドライバーで ビルダ を使用して インデックス を指定する方法を学びます。「 Indexesビルダには、次のタイプのインデックスを構築するためのヘルパー メソッドが用意されています。

インデックスは、コレクションのデータセットのサブセットを保存します。 インデックスには、特定のフィールドまたはフィールド セットの値が、フィールド値の順に保存されます。 インデックスによってカバーされるクエリの例については、「インデックスに関するガイド 」をご覧ください。

Indexesクラスは、すべてのMongoDBインデックスタイプの静的ファクトリー メソッドを提供します。 各メソッドはBSON インスタンスを返します。これを createIndex() に渡すことができます。

Tip

簡潔にするために、 インデックス のすべての方法をインポートすることを選択できます。 クラスは静的に次のようになります。

import static com.mongodb.client.model.Indexes.*;

次の例では、この静的インポートを前提としています。

昇順インデックスを使用すると、インデックス フィールドの値でクエリ結果を最小から最大の順にソートできます。

昇順インデックスを作成するには、まず 昇順() ビルダBson メソッドを使用して、インデックスを作成するフィールドの名前を渡して、インデックス ドキュメントを表す インスタンスを作成します。次に、インデックス ドキュメントを含むBsonインスタンスを渡して、コレクションのcreateIndex()メソッドを呼び出します。

注意

1 つのフィールドに昇順または降順のインデックスがある場合、MongoDB はどちらの方向のインデックスも使用してソートできます。

次の例では、 nameフィールドに昇順のインデックスを指定しています。

Bson ascendingIndex = ascending("name");
collection.createIndex(ascendingIndex);

降順インデックスを使用すると、インデックス フィールドの値でクエリ結果を最大から最小の順にソートできます。

降順インデックスを作成するには、まず 降順() ビルダBson メソッドを使用して、インデックスを作成するフィールドの名前を渡して、インデックス ドキュメントを表す インスタンスを作成します。次に、インデックス ドキュメントを含むBsonインスタンスを渡して、コレクションのcreateIndex()メソッドを呼び出します。

次の例では、 capacityフィールドに降順のインデックスを指定しています。

Bson descendingIndex = descending("capacity");
collection.createIndex(descendingIndex);

複合インデックスを作成するには、まず compoundIndex() ビルダBson メソッドを使用して、インデックスを作成するフィールドの名前を渡して、インデックス ドキュメントを表す インスタンスを作成します。次に、インデックス ドキュメントを含むBsonインスタンスを渡して、コレクションのcreateIndex()メソッドを呼び出します。

次の例では、 capacityyearフィールドに降順インデックス、その後にnameフィールドの昇順インデックスで構成される複合インデックスを指定しています。

Bson compoundIndexExample = compoundIndex(descending("capacity", "year"), ascending("name"));
collection.createIndex(compoundIndexExample);

テキスト インデックスでは、インデックス付きフィールドのテキストでドキュメントがグループ化されます。

テキストインデックスを作成するには、まず text() ビルダBson メソッドを使用して、インデックスを作成するフィールドの名前を渡して、インデックス ドキュメントを表す インスタンスを作成します。次に、インデックス ドキュメントを含むBsonインスタンスを渡して、コレクションのcreateIndex()メソッドを呼び出します。

次の例では、「 Atlas 」フィールドにテキスト インデックス キーを指定しています。

Bson textIndex = text("theaters");
collection.createIndex(textIndex);

ハッシュされたインデックスは、インデックス フィールドのハッシュ値でドキュメントをグループ化します。

ハッシュされたインデックスを作成するには、まず ハッシュされた() ビルダ Bsonメソッドを使用して、インデックスを作成するフィールドの名前を渡して、インデックス ドキュメントを表す インスタンスを作成します。次に、インデックス ドキュメントを含むBsonインスタンスを渡して、コレクションのcreateIndex()メソッドを呼び出します。

次の例えでは、 capacityフィールドに ハッシュされたインデックスを指定します。

Bson hashedIndex = hashed("capacity");
collection.createIndex(hashedIndex);

2dsphereインデックスは、インデックス フィールドの座標でドキュメントをグループ化します。

インデックスを作成するには、まず2dsphere 地理2 dsphere() を呼び出します ビルダBson メソッドを使用して、インデックスを作成するフィールドの名前を渡して、インデックス ドキュメントを表す インスタンスを作成します。次に、インデックス ドキュメントを含むBsonインスタンスを渡して、コレクションのcreateIndex()メソッドを呼び出します。

次の例えでは、 locationフィールドに2dsphereインデックスを指定します。

Bson geo2dsphereIndex = geo2dsphere("location");
collection.createIndex(geo2dsphereIndex);