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.
MongoDB Vector Search para usar o método
Aggregates.vectorSearch()para usar o recurso Atlas pesquisa vetorial.
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 .