AI エージェント向け: ドキュメントインデックスは https://www.mongodb.com/ja-jp/docs/llms.txt で利用できます。すべてのページの markdown バージョンは、いずれかの URL パスに .md を追加することで利用できます。
Docs Menu

ビルダ

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

Java Reactive Streams ドライバーには、 CRUD操作と 集計APIのビルダ クラスが含まれています。静的ユーティリティ メソッドを使用すると、クエリやその他のドキュメントをより効率的に構築できます。

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

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

  • 検出とコード完了のための IDE

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

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

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

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

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

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

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

record User(
@BsonId ObjectId id,
String gender,
int age,
String email
)

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

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

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

Bson filter = new Document().append("gender", "female").append("age", new Document().append("$gt", 29));
Bson projection = new Document().append("_id", 0).append("email", 1);
Flux.from(collection.find(filter).projection(projection))
.doOnNext(doc -> System.out.println(doc.toJson()))
.blockLast();

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

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

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"));
Flux.from(collection.find(filter).projection(projection))
.doOnNext(doc -> System.out.println(doc.toJson()))
.blockLast();