Overview
このセクションには、利用可能な各ビルダの使用方法に関するガイドと、MongoDB Java ドライバー ビルダ クラスが提供するユーティリティを示します。
Java ドライバーは、開発者が CRUD 操作と Aggregation API を使用するためのプロセスを簡素化するためのクラスを提供します。 静的ユーティリティ メソッドを使用すると、より効率的にクエリを構築できます。
注意
入力検証
ビルダ クラスは入力値を基礎となるMongoDB操作に渡し、それらの値をクリーンアップしません。アプリケーション内の入力をビルダ メソッドに渡す前に検証します。
ビルダを使用する理由
ビルダー クラスを使用すると、次の権限を活用できます。
開発中にエラーを見つけるための Java コンパイラーと IDE
検出とコード完了のための IDE
ビルダを使用する場合、Java コンパイラーと IDE はスペルのない演算子などのエラーを早期に検出します。 MongoDB shell またはプレーン Java を使用している場合、演算子を string として記述しますが、問題の視覚的なサインは得られず、これらのエラーはコンパイル時間ではなくランタイムにプッシュされます
ビルダ クラスでは、メソッドとして演算子を記述します。 IDE はすぐにアンダースコアを付け、右側に問題があることを示す赤色のバーを表示します。 開発中、IDE には使用できるメソッドも表示されます。 使用する方法を選択すると、プレースホルダー パラメーターを使用してコードが自動的に完了します。
Scenario
次の基準で、 usersコレクション内のすべてのユーザーにマーケティング メールを送信したいとします。
性を「人間」と指定するユーザー
" 29 " より前のユーザー
メールアドレスのみが必要なため、帯域幅コストを支払うが必要なデータはクエリで返されないようにしたいと考えています。
MongoDB Shell の使用
collection.find({ "gender": "female", "age" : { "$gt": 29 }}, { "_id": 0, "email": 1 })
ビルダを使用しない
Bson filter = new Document().append("gender", "female").append("age", new Document().append("$gt", 29)); Bson projection = new Document().append("_id", 0).append("email", 1); collection.find(filter).projection(projection);
ビルダの使用
import static com.mongodb.client.model.Filters.*; import static com.mongodb.client.model.Projections.*; ... Bson filter = and(eq("gender", "female"), gt("age", 29)); Bson projection = fields(excludeId(), include("email")); collection.find(filter).projection(projection);