构建器
概述
本节包括如何使用每个可用的构建器的指南,并展示了MongoDB Java驱动程序构建类提供的实用功能。
Java驱动程序提供类以简化开发人员使用CRUD操作和聚合API的过程。静态实用方法允许您更有效地构建查询。
为什么要使用构建器?
使用构建器类,您可以利用
Java编译器和IDE在开发过程中查找错误
IDE进行发现和代码补全
使用构建器时,Java编译器和IDE会尽早捕获诸如拼写错误的运算符等错误。当使用MongoDB shell或纯Java时,您将运算符作为字符串编写,不会出现任何问题视觉提示,将这些错误推迟到运行时而不是编译时
使用构建器类,您将运算符作为方法编写。IDE会立即下划线并在右侧给出红色条形指示有问题。在开发过程中,IDE还会显示您可以使用的方法。一旦您选择了想要使用的方法,它会自动用占位符参数完成您的代码。
场景
想象一下,我们想要向我们的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);