Overview
本部分包括有关如何使用每个可用构建器的指南,并演示了 MongoDB Java 驱动程序构建器类提供的实用程序。
Java 驱动程序提供了一系列类,旨在简化开发人员使用 CRUD 操作和聚合 API 的过程。静态实用工具方法使构建查询变得更加高效。
注意
输入验证
构建者类将输入值传递到根本的 MongoDB 操作,并且不清理这些值。在将输入传递给构建方法之前,请在您的应用程序中对其进行验证。
为什么要使用构建器?
使用构建者类,您可以利用以下功能:
用于在开发过程中发现错误的 Java 编译器和 IDE
用于发现和代码完成的 IDE
使用构建器时,Java 编译器和 IDE 会及早发现错误,如拼写错误的操作符等。使用 MongoDB Shell 或普通 Java 时,您将操作符写作字符串,并且无法获得这些问题的可视化指示,从而将这些错误推送到运行时而不是编译时。
使用构建器类,您可以将操作符编写为方法。IDE 会立即加下划线并在右侧显示一个红色条,表示出现问题。开发时,IDE 还会向您显示可以使用的方法。选择要使用的方法后,它会自动使用占位符参数来填充代码。
Scenario
假设我们要按照以下条件向 users 集合中的所有用户发送营销电子邮件:
性别为 "female"(女性)的用户
年龄大于“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);