Construtores
Visão geral
Esta seção inclui guias sobre como usar cada um dos construtores disponíveis e demonstra a utilidade que as classes do construtor de drivers Kotlin fornecem.
O driver Kotlin fornece classes para simplificar o processo de execução de operações CRUD e de uso da API de agregação. Os métodos utilitários estáticos permitem criar queries e outros tipos de documentos com mais eficiência.
Por que usar Construtores?
Ao usar classes de construtores, você aproveita os seguintes produtos:
O compilador Kotlin para encontrar erros durante o desenvolvimento
O IDE para descoberta, depuração e conclusão de código
Ao usar construtores, o compilador Kotlin e o IDE detectam erros como operadores com erros ortográficos ou parâmetros ausentes no início. Se você usar o shell do MongoDB ou o Kotlin simples, escreverá operadores como strings e não obterá nenhuma indicação visual de um problema, o que envia esses erros para o tempo de execução em vez de compilar.
Ao usar classes de construtores, você pode escrever operadores como métodos, para que seu IDE indique instantaneamente se seu código tem erros. Durante o desenvolvimento, seu IDE também pode mostrar métodos que você pode usar e pode completar seu código com parâmetros de espaço reservado.
Cenário de Exemplo
Suponha que você queira enviar um e-mail marketing a todos os usuários da collection users
que atendam aos seguintes critérios:
Usuários em que o valor do campo
gender
é"female"
Usuários em que o valor do campo
age
é maior que29
Você também precisa que sua query retorne apenas os endereços de e-mail deles.
Os documentos na coleção users
são modelados pela seguinte classe de dados :
data class User( val id: BsonObjectId = BsonObjectId(), val gender: String, val age: Int, val email: String, )
Usando o MongoDB Shell
O código a seguir fornece o comando que você usa na shell do MongoDB para executar a query:
collection.find({ "gender": "female", "age" : { "$gt": 29 }}, { "_id": 0, "email": 1 })
Sem usar construtores
O código a seguir fornece a operação de localização que você cria sem construtores no driver 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)
Nesse caso, você pode incluir facilmente um erro ao escrever o operador "\$gt"
no filtro, mas seu IDE retorna o erro relevante somente no tempo de execução.
Usando os Construtores
O código a seguir fornece a operação de localização que você cria usando construtores no driver 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)
Construtores disponíveis
Agregados para construção de pipelines de agregação.
Atlas Vector Search para usar o
Aggregates.vectorSearch()
método para usar a funcionalidade Atlas Vector Search .
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.
O guia Usar Construtores com Classes de Dados fornece exemplos sobre como usar as classes de construtores anteriores diretamente com as propriedades da classe de dados. Este guia pode ajudar a tornar seu aplicação mais seguro de tipo e melhorar a interoperabilidade do Kotlin .