Join us Sept 17 at .local NYC! Use code WEB50 to save 50% on tickets. Learn more >
MongoDB Event
Menu Docs
Página inicial do Docs
/ / /
Kotlin Coroutine
/

Construtores

Esta seção inclui guias sobre como usar cada um dos construtores disponíveis e demonstra a utilidade que as classes de construtores de drivers do MongoDB Kotlin fornecem.

O driver Kotlin fornece classes para simplificar o processo para os desenvolvedores usarem operações CRUD e a API de agregação. Os métodos de utilidade estática permitem que você crie uma query com mais eficiência.

Usando a classe de construtores, você aproveita o poder de:

  • O compilador Kotlin e o IDE para encontrar erros durante o desenvolvimento

  • O IDE para descoberta e conclusão de código

Ao usar construtores, o compilador Kotlin e o IDE detectam erros como operadores com erros ortográficos desde o início. Ao usar o shell do MongoDB ou o Kotlin simples, você escreve operadores como strings e não obtém indicação visual de um problema, enviando esses erros para o tempo de execução em vez de compilar.

Com as classes de construtor, você grava operadores como métodos. O IDE sublinha instantaneamente e mostra uma barra vermelha à direita indicando que algo está errado. Durante o desenvolvimento, o IDE também mostra os métodos que você pode usar. Ele preenche automaticamente seu código com parâmetros de espaço reservado depois que você seleciona qual método deseja usar.

Imagine que queremos enviar um e-mail de marketing a todos os usuários em nossa collection users com os seguintes critérios:

  • Usuários que se identificam como female gênero

  • Usuários com mais de 29

Como queremos apenas o endereço de e-mail deles, garantiremos que nossa query não retorne dados pelos quais pagamos custos de largura de banda, mas de que não precisamos.

Os documentos na collection users são modelados com a seguinte classe de dados em nosso aplicativo:

data class User(
@BsonId
val id: BsonObjectId = BsonObjectId(),
val gender: String,
val age: Int,
val email: String,
)
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)
  • Agregados para construção de pipelines de agregação.

  • Filtros para criar filtros de query.

  • Índices para criação de chaves de índice.

  • Projeções para criar projeções.

  • Classificar para criar critérios de classificação.

  • Updates das atualizações de construção.

Voltar

Operações compostas

Nesta página