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?



