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

ビルダ コード パターンを使用

項目一覧

  • Overview
  • ビルダを使用する理由
  • MongoDB Query API
  • ドキュメント クラス フィルター
  • ビルダ

このページでは、コード内で利用可能なさまざまなビルダを使用する方法と、提供されているビルダを使用する利点について説明します。

Kotlin Sync ドライバーは、開発者がクエリと集計を効率的に構築できるようにするタイプセーフなビルダ クラスとメソッドを提供します。

プレーン Kotlin のみを使用して BSON クエリ ドキュメントを構築する場合、実行時まで構文エラーを識別できません。 ビルダは構文の相関性を確保するのに役立ち、 BSON ドキュメントを作成するよりも冗長性を減らすことができます。

このセクションでは、次の条件を満たすusersコレクション内のドキュメントの emailフィールド値を取得するための 3 つの同等の方法を示します。

  • gender 値は "female"

  • age の値が より大きい 29

次のデータクラスは、 usersコレクション内のドキュメントをモデル化します。

data class User(
@BsonId val id: ObjectId,
val gender: String,
val age: Int,
val email: String
)

次のデータ クラスは、クエリによって返された結果をモデル化します。

data class Email(
val email: String
)

次のサンプルでは、 MongoDB Query API を使用してクエリを実行します。

collection.find(
{ "gender": "female", "age" : { "$gt": 29 }},
{ "_id": 0, "email": 1 }
)

次の例では、 Documentクラスを使用してクエリフィルターを構築し、クエリを実行します。

val filter = Document("gender", "female").append("age", Document("\$gt", 29))
val projection = Document("_id", 0).append("email", 1)
val results = collection.find<Email>(filter).projection(projection)

次の例では、 ビルダ ヘルパーを使用してクエリを実行します。

val filter = Filters.and(
Filters.eq(User::gender.name, "female"),
Filters.gt(User::age.name, 29)
)
val projection = Projections.fields(
Projections.excludeId(),
Projections.include("email")
)
val results = collection.find<Email>(filter).projection(projection)

戻る

時系列データ