Qualidade
Guia rápido de consultas no MongoDb
3 minutos de leitura
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?
- Instale uma ferramenta de gerenciamento de MongoDB. Sugiro utilizar o Studio3T.
- Conecte-se ao banco MongoDB com as credenciais de acesso. Você pode fazer isso utilizando uma connection string ou informando os dados manualmente.
![](https://cwi.com.br/wp-content/uploads/2023/08/8a03a4a6-b69f-4fcf-81b9-11ca6125c10f.png)
3. Realize um duplo clique em cima da collection desejada para abrir interface de busca.
![](https://cwi.com.br/wp-content/uploads/2023/08/95d2213e-2a2f-41f7-bf03-228d9f7fa2dd.png)
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:
![](https://cwi.com.br/wp-content/uploads/2023/08/2ec6f2d2-dd87-463a-86c7-d01b2717bece.png)
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:
![](https://cwi.com.br/wp-content/uploads/2023/08/b9f92587-d677-431f-a487-4f52892e253a.png)
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:
![](https://cwi.com.br/wp-content/uploads/2023/08/bc0b06b1-3aa9-4f1e-8ef9-080b332fd739.png)
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:
![](https://cwi.com.br/wp-content/uploads/2023/08/052554d8-7a10-4e40-bede-17803f7fa722.png)
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:
![](https://cwi.com.br/wp-content/uploads/2023/08/f05d253f-ab56-4350-bfaf-c660abc48105.png)
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:
![](https://cwi.com.br/wp-content/uploads/2023/08/a92732e4-bad8-4c29-a270-1f9dd106316a.png)
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:
![](https://cwi.com.br/wp-content/uploads/2023/08/66957ab6-1ecc-4f10-b991-34545a95e1b2.png)
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.