Overview
このガイドでは、MongoDB Java ドライバーで ビルダ を使用して インデックス を指定する方法を学びます。Indexesビルダは、次のタイプのインデックスを構築するためのヘルパー メソッドを提供します。
インデックスは、コレクションのデータセットのサブセットを保存します。 インデックスには、特定のフィールドまたはフィールド セットの値が、フィールド値の順に保存されます。 インデックスによってカバーされるクエリの例については、「インデックスに関するガイド 」をご覧ください。
Indexesクラスは、すべてのMongoDBインデックスタイプの静的ファクトリー メソッドを提供します。各メソッドはBSONインスタンスを返します。これを createIndex()に渡すことができます。
Tip
簡潔にするために、インデックスクラスのすべてのメソッドを静的にインポートすることを選択できます。
import static com.mongodb.client.model.Indexes.*;
次の例では、この静的インポートを前提としています。
昇順インデックス
昇順インデックスを使用すると、インデックス フィールドの値でクエリ結果を最小から最大の順にソートできます。
升順インデックスを作成するには、まず、インデックスするフィールドの名前を渡して、ascending() ビルダ メソッドを呼び出して、インデックス作成されたドキュメントを表す Bson インスタンスを作成します。次に、インデックス作成されたドキュメントを含む Bson インスタンスを渡して、コレクションで createIndex() メソッドを呼び出します。
注意
1 つのフィールドに昇順または降順のインデックスがある場合、MongoDB はどちらの方向のインデックスも使用してソートできます。
次の例では、 nameフィールドに昇順のインデックスを指定しています。
Bson ascendingIndex = ascending("name"); collection.createIndex(ascendingIndex);
降順インデックス
降順インデックスを使用すると、インデックス フィールドの値でクエリ結果を最大から最小の順にソートできます。
降順インデックスを作成するには、まず降順() ビルダBson メソッドを呼び出して、インデックスを作成するフィールドの名前を渡して、インデックスドキュメントを表す インスタンスを作成します。次に、インデックスドキュメントを含むcreateIndex() インスタンスを渡して、コレクションでBson メソッドを呼び出します。
次の例では、 capacityフィールドに降順のインデックスを指定しています。
Bson descendingIndex = descending("capacity"); collection.createIndex(descendingIndex);
複合インデックス
複合インデックスを作成するには、まず compoundIndex() ビルダーBson メソッドを呼び出して、インデックスを作成するフィールドの名前を渡して、インデックスドキュメントを表す インスタンスを作成します。次に、インデックスドキュメントを含むcreateIndex() インスタンスを渡して、コレクションでBson メソッドを呼び出します。
次の例では、 capacityとyearフィールドに降順インデックス、その後にnameフィールドの昇順インデックスで構成される複合インデックスを指定しています。
Bson compoundIndexExample = compoundIndex(descending("capacity", "year"), ascending("name")); collection.createIndex(compoundIndexExample);
Text Indexes
テキスト インデックスでは、インデックス付きフィールドのテキストでドキュメントがグループ化されます。
テキストインデックスを作成するには、まず text() ビルダBson メソッドを呼び出して、インデックスを作成するフィールドの名前を渡して、インデックスドキュメントを表す インスタンスを作成します。次に、インデックスドキュメントを含むcreateIndex() インスタンスを渡して、コレクションでBson メソッドを呼び出します。
次の例では、「 Atlas 」フィールドにテキスト インデックス キーを指定しています。
Bson textIndex = text("theaters"); collection.createIndex(textIndex);
ハッシュされたインデックス
ハッシュされたインデックスは、インデックス フィールドのハッシュ値でドキュメントをグループ化します。
ハッシュされたインデックスを作成するには、まずハッシュされた() Bsonビルダ メソッドを呼び出して、インデックスドキュメントを表す インスタンスを作成し、インデックスを作成するフィールドの名前を渡します。次に、インデックスドキュメントを含むcreateIndex() インスタンスを渡して、コレクションでBson メソッドを呼び出します。
次の例えでは、 capacityフィールドに ハッシュされたインデックスを指定します。
Bson hashedIndex = hashed("capacity"); collection.createIndex(hashedIndex);
地理空間インデックス
2dsphereインデックスは、インデックス フィールドの座標でドキュメントをグループ化します。
インデックスを作成するには、まず2dsphere geo2 dsphere() ビルダーBson メソッドを呼び出して、インデックスドキュメントを表す インスタンスを作成し、インデックスを作成するフィールドの名前を渡します。次に、インデックスドキュメントを含むcreateIndex() インスタンスを渡して、コレクションのBson メソッドを呼び出します。
次の例えでは、 locationフィールドに2dsphereインデックスを指定します。
Bson geo2dsphereIndex = geo2dsphere("location"); collection.createIndex(geo2dsphereIndex);