Página inicial do Docs → Desenvolver aplicações → Manual do MongoDB
Consultas em um array de documentos incorporados
Nesta página
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.
➤ Use o menu suspenso Selecione a linguagem no canto superior direito para definir a linguagem dos exemplos a seguir ou selecione MongoDB Compass.
Fazer query para um documento aninhado em uma bandeja
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
:
Especifique uma condição de consulta em um campo em uma matriz de documentos
Especifique uma condição de consulta em um campo incorporado em uma matriz de documentos
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
:
Use o índice de array para fazer query de um campo no documento incorporado
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
:
Especifique múltiplas condições para array de documentos
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.
Um único documento aninhado atende a várias condições de query em campos aninhados
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
:
A combinação de elementos satisfaz os critérios
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
:
Consulta a uma matriz de documentos com o MongoDB Atlas
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:
Navegue até a coleção
Na interface do usuário do Atlas MongoDB, clique em Database na barra lateral.
Para a implantação do banco de dados que contém os dados de amostra, clique em Browse Collections.
No painel de navegação esquerdo, selecione o banco de dados sample_training.
Selecione a collection grades.
Especifique o campo Filtro
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" } }
Tutoriais de consultas adicionais
Para exemplos de consulta adicionais, consulte: