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