Docs Menu
Docs Home
/ / /
Java Sync Driver
/

インデックス ビルダ

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

  • 昇順インデックス

  • 降順インデックス

  • 複合インデックス

  • Text 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インデックスを作成するには、まず geo2dsphere() ビルダー メソッドを呼び出して、インデックスドキュメントを表す Bsonインスタンスを作成し、インデックスするフィールドの名前を渡します。次に、インデックスドキュメントを含む Bsonインスタンスを渡して、コレクションの createIndex() メソッドを呼び出します。

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

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

戻る

フィルター

項目一覧