Principais comandos do MongoDB
💬 Linguagem do MongoDB
O MongoDB usa, no seu shell interativo (mongosh), uma sintaxe baseada em JavaScript para escrever comandos e consultas.
- Isso significa que, no dia a dia, você manipula coleções e documentos usando objetos e arrays no formato JSON (na verdade, o Mongo armazena em BSON – Binary JSON, otimizado para performance).
- Por exemplo:
db.personagens.find({ nome: "Bob Esponja" })
Isso é JavaScript puro adaptado ao contexto do banco.
🎯 Finalidade principal de usar o MongoDB (NoSQL)
A grande proposta dele é ser:
- Flexível → os dados são armazenados em documentos (JSON/BSON) sem precisar de esquema fixo como no SQL.
- Escalável → fácil de lidar com grandes volumes de dados, inclusive distribuídos em vários servidores (sharding).
- Ágil para desenvolvimento → mudanças na estrutura dos dados podem ser feitas rapidamente.
- Ótimo para dados não estruturados ou semi-estruturados → como registros de usuários, logs, catálogos de produtos, conteúdo dinâmico de aplicações, etc.
Métodos de inserção no mongoDB
Os métodos de inserção mais comuns são:
insertOne()→ insere um único documentoinsertMany()→ insere múltiplos documentos de uma vez
1️⃣ Inserindo um único documento (insertOne)
db.personagens.insertOne({
nome: "Bob Esponja",
ocupacao: "Cozinheiro",
local: "Restaurante Siri Cascudo",
idade: 20
})
2️⃣ Inserindo múltiplos documentos (insertMany)
db.personagens.insertMany([
{
nome: "Lula Molusco",
ocupacao: "Atendente de Caixa",
local: "Restaurante Siri Cascudo",
idade: 45
},
{
nome: "Patrick Estrela",
ocupacao: "Desempregado",
local: "Fenda do Biquíni",
idade: 22
},
{
nome: "Sandy Bochechas",
ocupacao: "Cientista",
local: "Domo de Vidro",
idade: 25
}
])
📌 Explicação rápida
db.<coleção>→ indica a coleção onde os documentos serão inseridos (ex.:personagens).insertOne()→ um objeto por vez.insertMany([])→ um array com vários objetos.- Não é obrigatório criar a coleção antes; o MongoDB cria automaticamente na primeira inserção.
🔍 Métodos de leitura no MongoDB
A função principal para leitura é find(), e ela tem algumas variações e parâmetros úteis.
1️⃣ Ler todos os documentos de uma coleção
db.personagens.find()
Retorna todos os documentos da coleção personagens.2️⃣ Ler o primeiro documento encontrado
db.personagens.findOne()
Retorna apenas um documento (o primeiro que o banco encontrar).
3️⃣ Filtrar por campo específico
Ex.: encontrar todos que trabalham no "Restaurante Siri Cascudo":
db.personagens.find({ local: "Restaurante Siri Cascudo" })
Alguns operadores utilizados com find():
.limit() → limitar a quantidade de resultados
Mostrar apenas 2 personagens:
db.personagens.find().limit(2)
$or → “OU” lógico
Buscar quem trabalha no Siri Cascudo OU tem idade menor que 23:
db.personagens.find({
$or: [
{ local: "Restaurante Siri Cascudo" },
{ idade: { $lt: 23 } }
]
})
$in → campo com valor dentro de uma lista
Buscar personagens que moram no Siri Cascudo ou no Domo de Vidro:
db.personagens.find({
local: { $in: ["Restaurante Siri Cascudo", "Domo de Vidro"] }
})
$lt → menor que (less than)
Buscar personagens com idade menor que 25:
db.personagens.find({
idade: { $lt: 25 }
})
$lte → menor ou igual (less than or equal)
Buscar personagens com idade menor ou igual a 25:
db.personagens.find({
idade: { $lte: 25 }
})
Métodos de atualização no MongoDB
1️⃣ updateOne() → atualiza apenas o primeiro documento encontrado que corresponda ao filtro
Ex.: mudar a ocupação do Bob Esponja para “Gerente de Cozinha”:
db.personagens.updateOne(
{ nome: "Bob Esponja" }, // filtro
{ $set: { ocupacao: "Gerente de Cozinha" } } // atualização
)
2️⃣ updateMany() → atualiza todos os documentos que correspondam ao filtro
Ex.: aumentar a idade de todos que trabalham no Siri Cascudo em 1 ano:
db.personagens.updateMany(
{ local: "Restaurante Siri Cascudo" },
{ $inc: { idade: 1 } } // $inc incrementa valor numérico
)
3️⃣ replaceOne() → substitui um documento inteiro
Ex.: substituir completamente o registro do Patrick por um novo documento:
db.personagens.replaceOne(
{ nome: "Patrick Estrela" }, // filtro
{
nome: "Patrick Estrela",
ocupacao: "Influencer Submarino",
local: "Fenda do Biquíni",
idade: 23
}
)
Aqui, se você não incluir um campo que existia antes, ele será removido no novo documento.
4️⃣ findOneAndUpdate() → atualiza e retorna o documento (por padrão, o original antes da alteração)
Ex.: mudar a ocupação da Sandy para “Inventora” e ver o documento atualizado:
db.personagens.findOneAndUpdate(
{ nome: "Sandy Bochechas" },
{ $set: { ocupacao: "Inventora" } },
{ returnDocument: "after" } // garante que retorne o documento após a atualização
)
🗑 Métodos de remoção no MongoDB
1️⃣ deleteOne() → remove apenas o primeiro documento que corresponde ao filtro
Ex.: remover o registro do Lula Molusco:
db.personagens.deleteOne(
{ nome: "Lula Molusco" } // filtro
)
Mesmo que existam vários documentos iguais, só o primeiro encontrado será deletado.
2️⃣ deleteMany() → remove todos os documentos que correspondam ao filtro
Ex.: deletar todos os personagens que moram no Balde de Lixo:
db.personagens.deleteMany(
{ local: "Balde de Lixo" }
)
3️⃣ findOneAndDelete() → encontra e retorna o documento removido
Ex.: deletar e ver os dados do Plankton antes da exclusão:
db.personagens.findOneAndDelete(
{ nome: "Plankton" }
)
Diferente dos outros métodos, ele devolve o documento removido, permitindo verificar o que foi apagado.
Fontes:
https://www.mongodb.com/pt-br/docs/mongodb-shell/run-commands/
https://www.mongodb.com/pt-br/docs/mongodb-shell/crud/insert/#std-label-mongosh-insert
https://www.mongodb.com/pt-br/docs/mongodb-shell/crud/read/#std-label-mongosh-read
https://www.mongodb.com/pt-br/docs/mongodb-shell/crud/update/#std-label-mongosh-update
https://www.mongodb.com/pt-br/docs/mongodb-shell/crud/delete/#std-label-mongosh-delete
Se quiser, posso te montar um comparativo rápido entre SQL e NoSQL pra você visualizar claramente quando faz sentido escolher um ou outro. Quer que eu faça, Erasmo?




Excelente conteúdo, Erasmo! Sua explicação sobre os principais comandos do MongoDB ficou extremamente didática e prática, mostrando desde a inserção até consultas mais avançadas, atualizações e remoções. Esse tipo de material é fundamental para quem está iniciando no universo NoSQL e precisa entender como aplicar os conceitos no dia a dia de forma direta.
Na DIO valorizamos muito quando o conhecimento é compartilhado de forma acessível, porque isso acelera a curva de aprendizado e ajuda profissionais a ganharem confiança para construir soluções reais. O fato de você trazer exemplos com personagens e casos práticos torna o aprendizado ainda mais envolvente e memorável.
Gostaria de saber: para você, qual foi o comando ou recurso do MongoDB que mais mudou sua forma de pensar em relação aos bancos relacionais tradicionais?