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

Recuperar dados

Nesta página

  • Visão geral
  • Encontrar operação
  • Operação agregada

Neste guia, você pode aprender como recuperar dados de seu banco de dados MongoDB. Para recuperar dados, use operações de leitura.

As operações de leitura permitem que fazer o seguinte:

  • Recupere um subconjunto de documentos da sua coleção usando uma operação find

  • Executar transformações em documentos recuperados de sua coleção usando uma operação agregada

  • Monitore alterações em tempo real em seu banco de dados usando change streams

As seções a seguir contém exemplos de como o proprietário de uma loja de tintas administra os pedidos de seus clientes. Para cada pedido, o proprietário mantém o controle da cor e quantidade, que corresponde aos campos color e qty em sua collection de paint_order:

{ "_id": 1, "color": "purple", "qty": 10 }
{ "_id": 2, "color": "green", "qty": 8 }
{ "_id": 3, "color": "purple", "qty": 4 }
{ "_id": 4, "color": "green", "qty": 11 }

Utilize a operação de localizar para recuperar um subconjunto dos seus dados existentes no MongoDB. Você pode especificar os dados a serem retornados, inclusive quais documentos devem ser recuperados, em que ordem devem ser recuperados e quantos devem ser recuperados.

Para executar uma operação de localizar, ligue para o método find() em uma instância de um MongoCollection. Esse método pesquisar uma collection de documento que correspondam ao filtro de query que você fornece. Para obter mais informações sobre como especificar uma query, consulte o nosso guia Especificar uma query .

O proprietário gostaria de saber quais pedidos contêm mais de três, mas menos de nove latas de tinta de sua coleção paint_order.

Para abordar este cenário, o proprietário encontra encomendas que correspondam aos critérios:

Bson filter = Filters.and(Filters.gt("qty", 3), Filters.lt("qty", 9));
// Retrieves documents that match the filter and prints them as JSON
collection.find(filter).forEach(doc -> System.out.println(doc.toJson()));

Para obter mais informações sobre como criar filtros, consulte nosso guia Construtores de filtros .

O seguinte mostra a saída da query anterior:

{ "_id": 2, "color": "green", "qty": 8 }
{ "_id": 3, "color": "purple", "qty": 4 }

Depois que o proprietário executa esta query, ele encontra dois pedidos que correspondem aos critérios.

Para obter um exemplo do find() executável, consulte nossa página Encontrar vários documentos.

Use a operação agregada para executar os estágios em uma aggregation pipeline. Uma aggregation pipeline é uma transformação em várias etapas que produz um resultado agregado.

Para executar uma operação agregada, chame o método aggregate() em uma instância de um MongoCollection. Este método aceita expressões de agregação para executar em sequência. Para realizar agregações, você pode definir estágios de agregação que especificam como fazer a correspondência entre documentos, renomear campos e agrupar valores. Para obter mais informações, consulte nosso guia de agregação.

O proprietário gostaria de saber qual cor de tinta é a mais comprada (maior quantidade vendida) de sua paint_order collection.

Para entender a situação, o proprietário cria uma aggregation pipeline que irá:

  • Corresponder a todos os documentos na collection paint_order

  • Agrupar pedidos por cores

  • Resume o campo de quantidade por cor

  • Ordenar os resultados pela quantidade mais alta para a mais baixa

Bson filter = Filters.empty();
// Prints the collection's "color" values and each value's frequency in descending frequency order
collection.aggregate(Arrays.asList(
Aggregates.match(filter),
Aggregates.group("$color", Accumulators.sum("qty", "$qty")),
Aggregates.sort(Sorts.descending("qty"))))
.forEach(doc -> System.out.println(doc.toJson()));

O seguinte mostra a saída da agregação anterior:

{ "_id": "green", "qty": 19 }
{ "_id": "purple", "qty": 14 }

Depois que o proprietário executa a agregação, ele descobre que "verde" é a cor mais comprada.

Para obter mais informações sobre como construir um pipeline de agregação, consulte a página manual do MongoDB Server em Agregação.

Para obter mais informações sobre os métodos descritos nesta página, consulte a seguinte documentação da API:

← Ler operações