Página inicial do Docs → Desenvolver aplicações → Manual do MongoDB
Consultas em um array
Nesta página
Você pode fazer queries de arrays no MongoDB usando os seguintes métodos:
O driver da sua linguagem de programação.
A UI do MongoDB Atlas. Para saber mais, consulte Fazer query de uma array 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.
Combine uma array
As seguintes queries de exemplo para todos os documentos onde o valor do campo tags
é uma array com exatamente dois elementos, "red"
e "blank"
, na ordem especificada:
Se, em vez disso, você quiser encontrar uma array que contenha os elementos "red"
e "blank"
, sem levar em conta a ordem ou outros elementos da array, use o operador $all
:
Fazer uma query de uma array para um elemento
As seguintes queries de exemplo para todos os documentos onde tags
é uma array que contém a string "red"
como um de seus elementos:
Por exemplo, a operação a seguir consulta todos os documentos onde o array dim_cm
contém pelo menos um elemento cujo valor seja maior que 25
.
Especificar várias condições para elementos de Array
Ao especificar condições compostas em elementos de array, você pode especificar a query de forma que um único elemento de array atenda a essa condição ou qualquer combinação de elementos de array atenda às condições.
Fazer query de uma array com condições de filtro composto nos elementos da bandeja
O exemplo a seguir consulta documentos em que o array dim_cm
contém elementos que, em alguma combinação, satisfazem as condições da query. Por exemplo, um elemento pode satisfazer a condição maior que 15
e outro elemento pode satisfazer a condição menor que 20
, ou um único elemento pode satisfazer as duas:
Fazer query de um elemento de Array que atenda a vários critérios
Utilize o operador $elemMatch
para especificar múltiplos critérios nos elementos de um array de forma que pelo menos um elemento de array satisfaça todos os critérios especificados.
O exemplo a seguir consulta documentos em que o array dim_cm
contém pelo menos um elemento que é, ao mesmo tempo, maior que($gt
) 22
e menor que($lt
) 30
:
Fazer query de um elemento pela posição do índice da array
Usando notação de ponto, você pode especificar condições de query para um elemento em um determinado índice ou posição da array. A array usa indexação baseada em zero.
Observação
Ao fazer query com notação de ponto, o campo e o campo aninhado devem estar entre aspas.
O exemplo a seguir consulta todos os documentos em que o segundo elemento do array dim_cm
é maior que 25
:
Fazer query de uma array por comprimento da array
Use o operador $size
para consultar arrays por número de elementos. Por exemplo, o seguinte seleciona documentos onde o array tags
tem 3 elementos.
Fazer uma query de uma array com MongoDB Atlas
O exemplo nesta seção utiliza o conjunto de dados de filmes 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 uma query de uma array 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_mflix
.Selecione a collection
movies
.
Especifique um documento de filtro de consulta.
Para consultar um documento que contenha um array, especifique um documento de filtro de query. Um documento de filtro de query usa operadores de query para especificar condições de pesquisa. Use os seguintes documentos de exemplo para consultar campos de array na collection sample_mflix.movies
.
Para aplicar um filtro de query, copie um documento de exemplo na barra de pesquisa Filter e clique em Apply.
Tutoriais de queries adicionais
Para exemplos de query adicionais, consulte: