Queries de dados
Nesta página
- Compatibilidade
- Definir filtro de queries
- Exemplos
- Correspondência por uma única condição
- Correspondência por múltiplas condições ($and)
- Correspondência por múltiplas condições possíveis ($or)
- Correspondência por exclusão ($not)
- Correspondência com operadores de comparação
- Correspondência por data
- Condições de correspondência por array
- Correspondência por substring
- Correspondência por campo incorporado
- Tipos de dados compatíveis na barra de consulta
- Limpe a consulta
- Coleções de consulta com dados UTF8 inválidos
- Como a consulta do Compass se compara às consultas do MongoDB e SQL?
Você pode digitar documentos de filtro MongoDB na barra de consulta para exibir apenas documentos que correspondam aos critérios especificados. Para saber mais sobre a consulta de documentos, consulte Consulta de documentos no manual do MongoDB.
Compatibilidade
Você pode consultar seus dados para implantações hospedados nos seguintes ambientes:
MongoDB Atlas: o serviço totalmente gerenciado para implantações do MongoDB na nuvem
MongoDB Enterprise: a versão autogerenciada e baseada em assinatura do MongoDB
MongoDB Community: uma versão com código disponível, de uso gratuito e autogerenciada do MongoDB.
Para saber mais sobre como consultar seus dados para implantações hospedadas no MongoDB Atlas, consulte Encontrar documentos específicos.
Definir filtro de queries
No campo Filter, insira um documento de filtro entre as chaves. Você pode usar todos os operadores de consulta do MongoDB , exceto os operadores
$text
e$expr
.Exemplo
O filtro a seguir retorna documentos com um valor de
title
deJurassic Park
:{ "title": "Jurassic Park" } Clique em Find para executar a consulta e visualizar os resultados atualizados.
clique para ampliar
Exemplos
Os exemplos nesta página utilizam um pequeno conjunto de dados de amostra. Para importar os dados de amostra para a implantação do MongoDB, execute as seguintes etapas:
Copie os seguintes documentos para a área de transferência:
[ { "name": "Andrea Le", "email": "andrea_le@fake-mail.com", "school": { "name": "Northwestern" }, "version": 5, "scores": [ 85, 95, 75 ], "dateCreated": { "$date": "2003-03-26" } }, { "email": "no_name@fake-mail.com", "version": 4, "scores": [ 90, 90, 70 ], "dateCreated": { "$date": "2001-04-15" } }, { "name": "Greg Powell", "email": "greg_powell@fake-mail.com", "version": 1, "scores": [ 65, 75, 80 ], "dateCreated": { "$date": "1999-02-10" } } ] No Compass, use o dashboard de navegação esquerdo para selecionar o banco de dados e a coleção para a qual deseja importar os dados.
Clique na aba Documents.
Clique em Add Data e selecione Insert Document.
Configure o View para JSON (
{}
).Cole os documentos JSON da área de transferência no modal.
Clique em Insert.
Observação
Se você não tiver uma implantação MongoDB ou se você deseja consultar um conjunto de dados de amostra maior, consulte Dados de amostra para clusters do Atlas para instruções sobre como criar um cluster de camada livre com dados de amostra. As consultas de exemplo a seguir filtram os documentos de amostra fornecidos nesta página.
Correspondência por uma única condição
O seguinte filtro de queries encontra todos os documentos onde o valor de name
é "Andrea Le":
{ name: "Andrea Le" }
A consulta retorna o seguinte documento:
{ "_id": { "$oid": "5e349915cebae490877d561d" }, "name": "Andrea Le", "email": "andrea_le@fake-mail.com", "school": { "name": "Northwestern" }, "version": 5, "scores": [ 85, 95, 75 ], "dateCreated": { "$date": "2003-03-26" } }
Correspondência por múltiplas condições ($and)
O seguinte filtro de queries encontra todos os documentos onde a array scores
contém o valor 75
, e o name
é Greg Powell
:
{ $and: [ { scores: 75, name: "Greg Powell" } ] }
A consulta retorna o seguinte documento:
{ "_id": { "$oid":"5a9427648b0beebeb69579cf" }, "name": "Greg Powell", "email": "greg_powell@fake-mail.com", "version": 1, "scores": [ 65, 75, 80 ], "dateCreated": { "$date": "1999-02-10" } }
Correspondência por múltiplas condições possíveis ($or)
O filtro de query a seguir usa o operador $or
para localizar documentos em que version
é 4
ou name
é Andrea Le
:
{ $or: [ { version: 4 }, { name: "Andrea Le" } ] }
A consulta retorna os seguintes documentos:
[ { "_id": { "$oid": "5e349915cebae490877d561d" }, "name": "Andrea Le", "email": "andrea_le@fake-mail.com", "school": { "name": "Northwestern" }, "version": 5, "scores": [ 85, 95, 75 ], "dateCreated": { "$date": "2003-03-26" } }, { "_id": { "$oid":"5e349915cebae490877d561e" }, "email": "no_name@fake-mail.com", "version": 4, "scores": [ 90, 90, 70 ], "dateCreated": { "$date": "2001-04-15" } } ]
Correspondência por exclusão ($not)
O filtro de query a seguir usa o operador $not
para localizar todos os documentos em que o valor do campo name
não é igual a "Andrea Le" ou o campo name
não existe:
{ name: { $not: { $eq: "Andrea Le" } } }
A consulta retorna os seguintes documentos:
[ { "_id": { "$oid":"5e349915cebae490877d561e" }, "email": "no_name@fake-mail.com", "version": 4, "scores": [ 90, 90, 70 ], "dateCreated": { "$date": "2001-04-15" } }, { "_id": { "$oid":"5a9427648b0beebeb69579cf" }, "name": "Greg Powell", "email": "greg_powell@fake-mail.com", "version": 1, "scores": [ 65, 75, 80 ], "dateCreated": { "$date": "1999-02-10" } } ]
Dica
Veja também:
Para obter uma lista completa de operadores de consulta lógica, consulte Operadores de consulta Lógica.
Correspondência com operadores de comparação
O seguinte filtro de query usa o operador $lte
para localizar todos os documentos nos quais version
seja menor ou igual a 4
:
{ version: { $lte: 4 } }
A consulta retorna os seguintes documentos:
[ { "_id": { "$oid":"5e349915cebae490877d561e" }, "email": "no_name@fake-mail.com", "version": 4, "scores": [ 90, 90, 70 ], "dateCreated": { "$date": "2001-04-15" } }, { "_id": { "$oid":"5a9427648b0beebeb69579cf" }, "name": "Greg Powell", "email": "greg_powell@fake-mail.com", "version": 1, "scores": [ 65, 75, 80 ], "dateCreated": { "$date": "1999-02-10" } } ]
Dica
Veja também:
Para obter uma lista completa de operadores de comparação, consulte Operadores de consulta de comparação.
Correspondência por data
O filtro de consulta a seguir usa o operador $gt
e o método Date()
para localizar todos os documentos em que o valor do campo dateCreated
é posterior a 22 de de junho de 2000:
{ dateCreated: { $gt: new Date('2000-06-22') } }
A consulta retorna os seguintes documentos:
[ { "_id": { "$oid": "5e349915cebae490877d561d" }, "name": "Andrea Le", "email": "andrea_le@fake-mail.com", "school": { "name": "Northwestern" }, "version": 5, "scores": [ 85, 95, 75 ], "dateCreated": { "$date": "2003-03-26" } }, { "_id": { "$oid": "5e349915cebae490877d561e" }, "email": "no_name@fake-mail.com", "version": 4, "scores": [ 90, 90, 70 ], "dateCreated": { "$date": "2001-04-15" } } ]
Condições de correspondência por array
O seguinte filtro de query utiliza o operador $elemMatch
para localizar todos os documentos onde pelo menos um valor no array scores
é maior que 80
e menor que 90
:
{ scores: { $elemMatch: { $gt: 80, $lt: 90 } } }
A consulta retorna o seguinte documento porque um dos valores na array scores
é 85
:
{ "_id": { "$oid": "5e349915cebae490877d561d" }, "name": "Andrea Le", "email": "andrea_le@fake-mail.com", "school": { "name": "Northwestern" }, "version": 5, "scores": [ 85, 95, 75 ], "dateCreated": { "$date": "2003-03-26" } }
Para obter mais exemplos de consulta, consulte Consultar documentos no manual do MongoDB.
Correspondência por substring
O seguinte filtro de query usa o operador $regex
para localizar todos os documentos onde o valor de email
inclui o termo "andrea_le":
{ email: { $regex: "andrea_le" } }
A consulta retorna o seguinte documento:
{ "_id": { "$oid": "5e349915cebae490877d561d" }, "name": "Andrea Le", "email": "andrea_le@fake-mail.com", "school": { "name": "Northwestern" }, "version": 5, "scores": [ 85, 95, 75 ], "dateCreated": { "$date": "2003-03-26" } }
Correspondência por campo incorporado
O filtro de consulta a seguir localiza o documento com o subcampo school.name
de "Noroeste":
{ "school.name": "Northwestern" }
A consulta retorna o seguinte documento:
{ "_id": { "$oid": "5e349915cebae490877d561d" }, "name": "Andrea Le", "email": "andrea_le@fake-mail.com", "school": { "name": "Northwestern" }, "version": 5, "scores": [ 85, 95, 75 ], "dateCreated": { "$date": "2003-03-26" } }
Para obter mais exemplos de consulta, consulte Consultar documentos no manual do MongoDB.
Tipos de dados compatíveis na barra de consulta
O Compass Filter suporta utilizar a representação dos mongosh
tiposde dados MongoDB Extended JSON BSON.
Exemplo
O filtro a seguir retorna documentos em que start_date
é maior que o BSON Date
2017-05-01
:
{ "start_date": {$gt: new Date('2017-05-01')} }
Ao especificar o tipo de Date
no start_date
e no operador de comparação $gt
, o Compass executa a comparação greater
than
cronologicamente, retornando documentos com start_date
posterior a 2017-05-01
.
Sem a especificação de tipo Date
, o Compass compara start_dates
como strings de forma lexicograficaem vez de comparar os valores de forma cronológica.
Limpe a consulta
Para limpar a barra de consulta e os resultados da consulta, clique em Reset.
Coleções de consulta com dados UTF8 inválidos
Se você tentar fazer consulta ou exportar dados com caracteres UTF8 inválidos, a seguinte mensagem de erro será exibida:
Invalid UTF-8 string in BSON document.
Para fazer consulta ou exportar estes dados, desabilite a validação UTF8 definindo a opção URI enableUtf8Validation
como false
.
Aviso
Editar dados com enableUtf8Validation=false
pode resultar na perda de dados. Esta abordagem é uma solução alternativa temporária apenas para consulta ou exportação de dados.
O seguinte URI desabilita a validação UTF8:
mongodb://localhost:27017/?enableUtf8Validation=false
Observação
Você também pode desabilitar esta opção nas Opções de conexão avançadas selecionando enableUtf8Validation e inserindo false
.
Como a consulta do Compass se compara às consultas do MongoDB e SQL?
$filter
corresponde à cláusula WHERE
em uma instrução SQL SELECT
.
Exemplo
Você tem 3.235 artigos. Você gostaria de ver todos os artigos que Joe Bloggs escreveu.
- Opção de filtro do Compass
{ author : { $eq : "Joe Bloggs" } } - Agregação do MongoDB
db.article.aggregate( { $match: { "author": "Joe Bloggs" } } ) - SQL
SELECT * FROM article WHERE author = "Joe Bloggs";