Ir para o conteúdo

Guia rápido de consultas no MongoDb

3 min. de leitura

Avatar de Gabriel Fernando Britz Cartelli

Gabriel Fernando Britz Cartelli Autoria do conteúdo


O que é o MongoDb?

De acordo com o ChatGPT:

“MongoDB é um sistema de gerenciamento de banco de dados NoSQL (non-relational) que foi desenvolvido para atender às necessidades de aplicações modernas e escaláveis. O MongoDB armazena os dados em formato JSON (JavaScript Object Notation), o que o torna muito flexível e fácil de integrar com aplicações web e móveis.

Ao contrário dos bancos de dados relacionais tradicionais, o MongoDB não utiliza tabelas para armazenar os dados, mas sim coleções, que contêm documentos JSON. Cada documento é composto por um conjunto de pares de chave-valor, o que confere uma notável flexibilidade a ele, fazendo-o capaz de lidar com dados não estruturados e semiestruturados.


Como interagir com o MongoDB?

  1. Instale uma ferramenta de gerenciamento de MongoDB. Sugiro utilizar o Studio3T.
  2. Conecte-se ao banco MongoDB com as credenciais de acesso. Você pode fazer isso utilizando uma connection string ou informando os dados manualmente.

3. Realize um duplo clique em cima da collection desejada para abrir interface de busca.


Como buscar todos os documentos de uma collection?

Para buscar todos os documentos basta executar o comando find sem passar nenhum filtro:

db.getCollection("Pedidos").find({})

Resultado:


Como buscar documentos filtrando por um campo?

Para buscar documentos filtrando por um campo, é necessário adicionar uma condicional ao comando find, indicando o campo e o valor pelo qual se deseja filtrar:

db.getCollection("Pedidos").find({'id': 1})

Resultado:


Como buscar documentos filtrando por um campo que está dentro de um objeto?

Para buscar documentos filtrando por um campo que está dentro de um objeto, é necessário adicionar uma condicional ao comando find indicando o path do campo:

db.getCollection("Pedidos").find({'cliente.nome': "João Silva"})

Resultado:

Dica de ouro: o path pode ser obtido clicando com o botão direito do mouse em cima do campo e selecionando a ação de Copy Field Path:


Como buscar documentos filtrando por mais de um campo?

Para buscar documentos filtrando por mais de um campo , é necessário passar mais de uma condicional ao comando find separando cada uma por vírgula:

db.getCollection("Pedidos").find({
'cliente.nome': "João da Silva",
'cliente.endereco.estado': "SP"})

Dica de ouro: é possível passar quantas condicionais forem necessárias.

Resultado:


Como buscar documentos filtrando por um campo com valor diferente do especificado?

Para buscar documentos filtrando por um campo com valor diferente do especificado, é necessário adicionar ao comando find o operador $ne (not equal) da seguinte forma:

db.getCollection("Pedidos").find({'cliente.nome': {$ne: "João Silva"}})

Resultado:


Como buscar documentos filtrando por um campo com valor maior que o especificado?

Para buscar documentos filtrando por um campo com valor maior que o especificado, é necessário adicionar ao comando find o operador $gte (greater than or equal) da seguinte forma:

db.getCollection("Pedidos").find({'produtos.preco': {$gte: 100}})

Resultado:

Dica de ouro: o operador $gte também pode ser utilizado para comparar datas da seguinte forma:

db.getCollection("Pedidos").find({'data': {$gte : new ISODate("2023-03-25T20:15:31Z")}})


E se eu precisar executar outra operação?

Se você precisar executar outra operação ou tipo de filtro na sua busca, não deixe de consultar a documentação. São muitas as opções disponíveis.

Gostou?