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

ビルダ

項目一覧

  • Overview
  • ビルダを使用する理由
  • サンプルシナリオ
  • MongoDB Shell の使用
  • ビルダを使用しない
  • ビルダの使用
  • 利用可能なビルダ

このセクションには、利用可能な各ビルダの使用方法に関するガイドと、 Kotlinドライバー ビルダ クラスが提供するユーティリティを示します。

Kotlinドライバーには、 CRUD操作の実行と 集計API の使用プロセスを簡素化するためのクラスが用意されています。 静的ユーティリティ メソッドを使用すると、クエリやその他の種類のドキュメントをより効率的に構築できます。

ビルダ クラスを使用する場合は、次の製品を活用します。

  • 開発中にエラーを見つけるためのKotlinコンパイラー

  • 検出、デバッグ、コード完了のための IDE

ビルダを使用する場合、 Kotlinコンパイラーと IDE は、スペルのない演算子やパラメーターの欠落などのエラーを早期に検出します。 代わりにMongoDB シェルまたはプレーンのKotlin を使用する場合は、演算子を string として書込み (write) しても問題が視覚的に明確にならないため、これらのエラーはコンパイル時間ではなくランタイムにプッシュされます。

ビルダ クラスを使用すると、演算子をメソッドとして書込むことができ、IDE はコードにエラーがあるかどうかを即座に示すようになります。 開発中に、IDE は使用できるメソッドを表示することも、プレースホルダー パラメーターを使用してコードを完了することもできます。

次の条件を満たす usersコレクション内のすべてのユーザーにマーケティングメールを送信するとします。

  • genderフィールドの値が "female" のユーザー

  • ageフィールドの値が 29 より大きいユーザー

また、メールアドレスのみを返すクエリも必要です。

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

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

次のコードは、 MongoDB Shell でクエリを実行するために使用するコマンドを提供します。

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

次のコードは、 Kotlinドライバー のビルダなしで作成した検索操作を提供します。

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

この場合、フィルターに "\$gt" 演算子を書き込むときに簡単にエラーを含めることができますが、IDE は関連するエラーを実行時にのみ返します。

次のコードは、 Kotlinドライバーのビルダを使用して作成した検索操作を提供します。

import com.mongodb.client.model.Filters
import com.mongodb.client.model.Projections
data class Results(val email: String)
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<Results>(filter).projection(projection)
  • 集計パイプラインを構築するための集計。

  • クエリフィルターを構築するためのフィルター。

  • インデックスキーを作成するためのインデックス。

  • プロジェクションを構築するための プロジェクション 。

  • ソート基準を構築するためのソート。

  • 更新を構築するための更新。

「 データ クラスでビルダを使用する 」ガイドでは、前述のビルダ クラスをデータクラスのプロパティで直接使用する方法に関する例を紹介します。このガイドは、アプリケーションの型安全性を高め、 Kotlin の相互運用性を向上させるのに役立つ場合があります。

戻る

複合演算子