Menu Docs
Página inicial do Docs
/ / /
Driver de sincronização Kotlin

Usar padrão de código da Builders

Nesta página

  • Visão geral
  • Por que usar Construtores?
  • Exemplo
  • API de query do MongoDB
  • Filtro de classe do documento
  • Construtores

Esta página descreve como usar os vários construtores disponíveis em seu código e descreve os benefícios de usar os construtores fornecidos.

O driver Kotlin Sync fornece classes e métodos de construtor com segurança de tipo que permitem que os desenvolvedores criem query e agregações com eficiência.

Se você usar apenas o Kotlin simples para construir documentos de query BSON, não poderá identificar erros de sintaxe até o tempo de execução. Os construtores ajudam a garantir a correção da sintaxe e podem ser menos prolixo do que a construção de documentos BSON.

Esta seção fornece três maneiras equivalentes de buscar os valores de campo email de documentos na coleção users que atendem aos seguintes critérios:

  • gender o valor é "female"

  • age o valor é maior que 29

A seguinte classe de dados modela os documentos na coleção users :

data class User(
@BsonId val id: ObjectId,
val gender: String,
val age: Int,
val email: String
)

A seguinte classe de dados modela os resultados retornados por nossa query:

data class Email(
val email: String
)

O exemplo a seguir executa a consulta usando a API de consulta MongoDB:

collection.find(
{ "gender": "female", "age" : { "$gt": 29 }},
{ "_id": 0, "email": 1 }
)

O exemplo a seguir executa a query utilizando a classe Document para construir o filtro de query:

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)

O exemplo a seguir executa a query usando os ajudantes do construtor:

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)

Voltar

Dados de série temporal

Próximo

Compatibilidade