Menu Docs

Página inicial do DocsDesenvolver aplicaçõesManual do MongoDB

Consultas em um array de documentos incorporados

Nesta página

  • Fazer query para um documento aninhado em uma bandeja
  • Especifique uma condição de consulta em um campo em uma matriz de documentos
  • Especifique múltiplas condições para array de documentos
  • Consulta a uma matriz de documentos com o MongoDB Atlas
  • Tutoriais de consultas adicionais

Você pode consultar documentos no MongoDB usando os seguintes métodos:

  • O driver da sua linguagem de programação.

  • AIU de usuário do MongoDBAtlas. Para saber mais, consulte Fazer query de uma array de documentos com o MongoDB Atlas.

  • MongoDB Compass.


➤ Use o menu suspenso Selecione a linguagem no canto superior direito para definir a linguagem dos exemplos a seguir ou selecione MongoDB Compass.


O exemplo a seguir seleciona todos os documentos em que um elemento na array instock corresponde ao documento especificado:

As correspondências de igualdade em todo o documento incorporado/aninhado exigem uma correspondência exata do documento especificado, incluindo a ordem dos campos. Por exemplo, a seguinte query não corresponde a nenhum documento da collection inventory:

Se você não souber a posição do índice do documento aninhado na array, concateneie o nome do campo da array, com um ponto (.) e o nome do campo no documento aninhado.

O exemplo a seguir seleciona todos os documentos em que a array instock tem pelo menos um documento incorporado que contém o campo qty cujo valor é menor ou igual a 20:

Usando a notação de ponto, você pode especificar condições de consulta para o campo em um documento em um determinado índice ou posição da matriz. A array usa indexação baseada em zero.

Observação

Ao consultar com notação de ponto, o campo e o índice devem estar entre aspas.

O exemplo a seguir seleciona todos os documentos onde a array instock tem como primeiro elemento um documento que contém o campo qty cujo valor é menor ou igual a 20:

Ao especificar condições em mais de um campo aninhado em uma matriz de documentos, você pode especificar a consulta de forma que um único documento atenda a essas condições ou que qualquer combinação de documentos (incluindo um único documento) na matriz atenda às condições.

Use $elemMatch operador para especificar vários critérios em uma array de documentos incorporados de modo que pelo menos um documento incorporado satisfaça todos os critérios especificados.

Os seguintes exemplos de consultas para documentos onde a matriz instock tem pelo menos um documento incorporado que contém o campo qty igual a 5 e o campo warehouse igual a A:

O exemplo a seguir query os documentos em que a array instock tem pelo menos um documento incorporado que contém o campo qty que é maior que 10 e menor ou igual a 20:

Se as condições da consulta composta de um campo da matriz não utilizarem o $elemMatch operador , a consulta selecionará os documentos cuja matriz contiver qualquer combinação de elementos que satisfaça as condições.

Por exemplo, a consulta a seguir corresponde a documentos em que todos os documentos aninhados da matriz instock contenham o campo qty maior que 10 e todos os documentos (mas não necessariamente o mesmo documento incorporado) da matriz contenham o campo qty menor ou igual a 20:

As seguintes queries de exemplo para documentos onde a array instock tem pelo menos um documento incorporado que contém o campo qty igual a 5 e pelo menos um documento incorporado (mas não necessariamente o mesmo documento incorporado) que contém o campo warehouse igual a A:

O exemplo nesta seção utiliza o conjunto de dados de treinamento de amostra. Para saber como carregar o conjunto de dados de amostra em sua implantação do MongoDB Atlas, consulte Carregar Dados de Amostra.

Para fazer query de uma array de documentos no MongoDB Atlas, siga estas etapas:

1
  1. Na interface do usuário do Atlas MongoDB, clique em Database na barra lateral.

  2. Para a implantação do banco de dados que contém os dados de amostra, clique em Browse Collections.

  3. No painel de navegação esquerdo, selecione o banco de dados sample_training.

  4. Selecione a collection grades.

2

Especifique o documento de filtro de consulta no campo Filter. Um documento de filtro de consulta usa operadores de consulta para especificar as condições de pesquisa.

Copie o seguinte documento de filtro de consulta para a barra de pesquisa Filter:

{ scores: { type: "exam" } }
3

Este filtro de query retorna todos os documentos na coleção sample_training.grades onde o campo scores contém um tipo de pontuação exam.

Para exemplos de consulta adicionais, consulte:

← Consultas em um array