Menu Docs

Queries de dados

Você pode digitar documentos de filtro do MongoDB na barra de consulta para exibir apenas documentos que correspondam aos critérios especificados. Para saber mais sobre como consultar documentos, consulte Consulte 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.

    Results of applying a query filter
    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" }
}
]

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

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 lexicograficamente, ao invés de comparar os valores cronologicamente.

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

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