Construtores
Nesta página
Visão geral
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 Java do MongoDB fornecem.
O driver Java fornece classes para simplificar o processo para os desenvolvedores usarem operações CRUD e a API de agregação. Os métodos utilitários estáticos permitem criar uma query com mais eficiência.
Por que usar Construtores?
Usando a classe de construtores, você aproveita o poder de:
O compilador Java e o IDE para encontrar erros durante o desenvolvimento
O IDE para descoberta e conclusão de código
Ao usar construtores, o compilador Java e o IDE detectam erros como operadores com erros ortográficos logo no início. Ao usar o shell do MongoDB ou Java simples, você escreve os operadores como strings e não recebe nenhum sinal visual de um problema, empurrando esses erros para o tempo de execução em vez do tempo de compilação
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.
Cenário
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 com o gênero feminino
Usuários que têm mais de "29" anos
Queremos apenas o endereço de e-mail do usuário, portanto, queremos garantir que nossa consulta não retorne dados pelos quais pagamos os custos de largura de banda, mas dos quais não precisamos.
Usando o MongoDB Shell
collection.find({ "gender": "female", "age" : { "$gt": 29 }}, { "_id": 0, "email": 1 })
Sem usar construtores
Bson filter = new Document().append("gender", "female").append("age", new Document().append("$gt", 29)); Bson projection = new Document().append("_id", 0).append("email", 1); collection.find(filter).projection(projection);
Usando os Construtores
import static com.mongodb.client.model.Filters.*; import static com.mongodb.client.model.Projections.*; ... Bson filter = and(eq("gender", "female"), gt("age", 29)); Bson projection = fields(excludeId(), include("email")); collection.find(filter).projection(projection);