使用构建器 Code Pattern
Overview
本页介绍如何在代码中使用各种可用的构建者,并介绍使用所提供构建者的好处。
Kotlin Sync驾驶员提供了类型安全的构建器类和方法,启用开发者能够高效地构建查询和聚合。
为什么要使用构建器?
如果仅使用普通Kotlin来构造BSON查询文档,则直到运行时才能识别语法错误。 构建者有助于确保语法的正确性,并且比构建BSON文档更简洁。
例子
本部分提供了三种等效方法来获取users
集合中满足以下条件的文档的 email
字段值:
gender
值为"female"
age
值大于29
以下数据类对users
集合中的文档进行建模:
data class User( val id: ObjectId, val gender: String, val age: Int, val email: String )
以下数据类对查询返回的结果进行建模:
data class Email( val email: String )
MongoDB 查询 API
以下示例使用MongoDB查询API执行查询:
collection.find( { "gender": "female", "age" : { "$gt": 29 }}, { "_id": 0, "email": 1 } )
文档类筛选器
以下示例使用Document
类构造查询过滤来执行查询:
val filter = Document("gender", "female").append("age", Document("\$gt", 29)) val projection = Document("_id", 0).append("email", 1) val results = collection.find<Email>(filter).projection(projection)
构建器
以下示例使用构建器助手执行查询:
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<Email>(filter).projection(projection)