此版本的文档已存档,不再提供支持。查看 最新文档,学习;了解当前支持的Kotlin驾驶员版本。
Overview
本部分包括有关如何使用每个可用构建器的指南,并演示了 MongoDB Kotlin 驱动程序构建器类提供的实用程序。
Kotlin 驱动程序提供了一些类来简化开发者使用 CRUD 操作和聚合 API 的流程。 静态实用程序方法可让您更有效地构建查询。
为什么要使用构建器?
使用构建者类,您可以利用以下功能:
用于在开发期间查找错误的 Kotlin 编译器和 IDE
用于发现和代码完成的 IDE
使用构建器时,Kotlin 编译器和 IDE 会及早发现拼写错误的操作符等错误。 使用MongoDB shell或普通Kotlin时,您将操作符写入字符串,并且看不到问题的可视化指示,将这些错误推送到运行时而不是编译时。
使用构建器类,您可以将操作符编写为方法。IDE 会立即加下划线并在右侧显示一个红色条,表示出现问题。开发时,IDE 还会向您显示可以使用的方法。选择要使用的方法后,它会自动使用占位符参数来填充代码。
Scenario
假设我们要使用以下条件向 users
collection中的所有用户发送一封市场营销电子邮件:
性别为
female
的用户用户年龄早于
29
我们只需要他们的电子邮件地址,因此我们将确保查询不会返回我们支付带宽费用但并不需要的数据。
在我们的应用程序中, users
集合中的文档使用以下数据类进行建模:
data class User( val id: BsonObjectId = BsonObjectId(), val gender: String, val age: Int, val email: String, )
使用 MongoDB Shell
collection.find({ "gender": "female", "age" : { "$gt": 29 }}, { "_id": 0, "email": 1 })
不使用构建器
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)
使用构建器
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)