Docs Menu
Docs Home
/ / /
Kotlin コルーチン
/ /

インデックス ビルダ

項目一覧

  • Overview
  • 昇順インデックス
  • 降順インデックス
  • 複合インデックス
  • Text Indexes
  • ハッシュされたインデックス
  • 地理空間インデックス

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

  • 昇順インデックス

  • 降順インデックス

  • 複合インデックス

  • Text 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()メソッドを呼び出します。

次の例では、 capacityyearフィールドに降順インデックス、その後に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() ビルダ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

戻る

フィルター