构建器
Overview
本部分包括有关如何使用每个可用构建者的指南,并演示了Kotlin驾驶员构建器类提供的实用程序。
Kotlin驾驶员提供了类来简化执行增删改查操作和使用 聚合API的进程。 静态实用程序方法可让您更高效地构建查询和其他类型的文档。
为什么要使用构建器?
使用构建者类时,您可以利用以下产品:
用于在开发期间查找错误的Kotlin编译器
用于发现、调试和代码完成的 IDE
使用构建者时, Kotlin编译器和 IDE 会及早捕获错误,例如拼写错误的操作符或缺失参数。 如果改用MongoDB Shell或普通Kotlin ,则将操作符写入字符串,而无法看到问题的可视化指示,从而将这些错误推到运行时而不是编译时。
通过使用构建器类,您可以将操作符写入为方法,以便 IDE 立即指示代码是否有错误。 开发时,IDE 还可以向您显示可以使用的方法,并且可以使用占位符参数来完成代码。
示例场景
假设您要向 users
集合中满足以下条件的所有用户发送市场营销电子邮件:
gender
字段值为"female"
的用户age
字段的值大于29
的用户
您还需要让查询仅返回他们的电子邮件地址。
users
集合中的文档由以下数据类建模:
data class User( val id: BsonObjectId = BsonObjectId(), val gender: String, val age: Int, val email: String, )
使用 MongoDB Shell
以下代码提供了在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)
可用构建器
Aggregates,用于构建聚合管道。
Atlas Vector Search用于使用
Aggregates.vectorSearch()
方法使用Atlas Vector Search功能。
用于构建查询筛选器的筛选器。
用于创建索引键的索引。
用于构建投影的投影。
Sorts,用于构建排序条件。
用于构建更新的更新。
将构建器与数据类结合使用指南提供了有关如何将前面的构建者类直接与数据类属性结合使用的示例。本指南可能有助于提高应用程序的类型安全性,并提高Kotlin互操作性。