Menu Docs
Página inicial do Docs
/
MongoDB Compass
/

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.

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.

  1. 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 de Jurassic Park:

    { "title": "Jurassic Park" }
  2. Clique em Find para executar a consulta e visualizar os resultados atualizados.

    Resultados da aplicação de um filtro de queries
    clique para ampliar

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:

  1. 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" }
    }
    ]
  2. 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.

  3. Clique na aba Documents.

  4. Clique em Add Data e selecione Insert Document.

  5. Configure o View para JSON ({}).

  6. Cole os documentos JSON da área de transferência no modal.

  7. 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.

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" }
}

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" }
}

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" }
}
]

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.

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.

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" }
}
]

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.

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" }
}

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.

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.

Para limpar a barra de consulta e os resultados da consulta, clique em Reset.

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.

$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";

Voltar

Excluir vários documentos