Docs Menu
Docs Home
/ / /
Kotlin Sync ドライバー
/

Retrieve Data

項目一覧

  • Overview
  • サンプル データ
  • ドキュメントの検索
  • ドキュメントの検索の例
  • 検索動作の変更
  • 詳細情報
  • API ドキュメント

このガイドでは、 Kotlin Sync ドライバーを使用して、読み取り操作により MongoDB コレクションからデータを検索する方法を学習できます。 find()メソッドを呼び出して、クエリフィルターで指定された一連の条件に一致するドキュメントを検索できます。

このガイドの例では、 Atlas サンプル データセットsample_restaurantsデータベースのrestaurantsコレクションを使用します。 MongoDB Atlas クラスターを無料で作成して、サンプル データセットをロードする方法については、 「 Atlas を使い始める 」ガイドを参照してください。

このコレクション内のドキュメントは、次の Kotlin データ クラスによってモデル化されます。

data class Restaurant(
val name: String,
val cuisine: String
)

find()メソッドは、コレクションからドキュメントを取得します。 このメソッドはクエリフィルターを受け取り、一致するすべてのドキュメントを返します。 クエリフィルターは、ドライバーがコレクションのドキュメントを照合するために使用する基準を指定するドキュメントです。

クエリフィルターの詳細については、「 クエリの指定」ガイドを参照してください。

次の例では、 find()メソッドを使用して、 cuisineフィールドの値が"Spanish"であるすべてのドキュメントを検索します。

val results = collection.find(eq(Restaurant::cuisine.name, "Spanish"))

前述の例のfind()操作はFindIterableオブジェクトを返します。このオブジェクトは、次の例に示すように、 forEach()メソッドを使用して反復処理できます。

val results = collection.find(eq(Restaurant::cuisine.name, "Spanish"))
results.forEach { result ->
println(result)
}
Restaurant(name=Tropicoso Club, cuisine=Spanish)
Restaurant(name=Beso, cuisine=Spanish)
Restaurant(name=Sabor Latino Restaurant, cuisine=Spanish)
...

注意

すべてのドキュメントの検索

コレクション内のすべてのドキュメントを検索するには、 find()メソッドに空のフィルターを渡します。

val results = collection.find()

find()メソッド呼び出しにメソッドを連鎖させることで、 find()メソッドの動作を変更できます。 次の表では、クエリの変更に使用される一般的な方法について説明しています。

方式
説明
batchSize()
Limits the number of documents to return per batch. To learn more about batch size, see cursor.batchSize() in the MongoDB Server manual.
collation()
Sets the collation options for the query.
comment()
Specifies a string to attach to the query. This can help you trace and interpret the operation in the server logs and in profile data. To learn more about query comments, see $comment in the MongoDB Server manual.
hint()
Specifies the index to use for the query.
limit()
Limits the number of documents to be returned from the query.
maxTime()
Sets the maximum execution time on the server for this operation.
skip()
Sets the number of documents to skip.
sort()
Defines the sort criteria to apply to the query.

次の例では、 limit()メソッドとmaxTime()メソッドを連結して、クエリによって返されるドキュメント数を10に制限し、 操作の最大実行時間を10000ミリ秒に設定します。

val results = collection
.find(eq(Restaurant::cuisine.name, "Spanish"))
.limit(10)
.maxTime(10000)

の動作を変更するメソッドの完全なリストについては、find() クラスのAPIドキュメント FindIterableを参照してください。

クエリフィルターの詳細については、「クエリの指定」を参照してください。

Kotlin Sync ドライバーを使用してドキュメントを取得する実行可能なコード例については、「 MongoDB からのデータの読み取り 」を参照してください。

このガイドで説明したメソッドや型の詳細については、次の API ドキュメントを参照してください。

  • find()

  • FindIterable

戻る

クエリを指定する