MongoDB.local SF, Jan 15: See the speaker lineup & ship your AI vision faster. Use WEB50 to save 50%
Find out more >
Docs Menu
Docs Home
/ /
MongoDB からのデータの読み取り

Retrieve Data

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

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

このコレクション内のドキュメントは、次の 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

戻る

クエリを指定する

項目一覧