インデックス ビルダ
Overview
このガイドでは、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()
メソッドを呼び出します。
次の例では、 capacity
とyear
フィールドに降順インデックス、その後にname
フィールドの昇順インデックスで構成される複合インデックスを指定しています。
Bson compoundIndexExample = compoundIndex(descending("capacity", "year"), ascending("name")); collection.createIndex(compoundIndexExample);
Text Indexes
テキスト インデックスでは、インデックス付きフィールドのテキストでドキュメントがグループ化されます。
テキストインデックスを作成するには、まず 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);