O MongoDB é um banco de dados NoSQL orientado a documentos, que armazena dados em formato JSON (BSON). Em vez de tabelas e linhas, há coleções e documentos.
Equivalência com SQL
| SQL | MongoDB |
|---|---|
| Banco de dados | Database |
| Tabela | Coleção (collection) |
| Linha | Documento |
| Coluna | Campo |
| JOIN | $lookup ou documentos embutidos |
Subindo com Docker
docker run -d --name mongo -p 27017:27017 mongo:7
docker exec -it mongo mongosh
Comandos básicos no mongosh
use loja
db.clientes.insertOne({ nome: "Ana", idade: 30, cidades: ["SP", "RJ"] })
db.clientes.insertMany([{ nome: "Bruno", idade: 25 }, { nome: "Carla", idade: 41 }])
db.clientes.find()
db.clientes.find({ idade: { $gt: 28 } })
db.clientes.find({}, { nome: 1, _id: 0 })
db.clientes.updateOne({ nome: "Ana" }, { $set: { idade: 31 } })
db.clientes.deleteOne({ nome: "Bruno" })
db.clientes.createIndex({ nome: 1 })
Quando usar
Dados semiestruturados, esquemas que mudam, catálogos e conteúdo. Para dados fortemente relacionais e transações complexas, um banco SQL costuma ser mais adequado. Veja introdução ao NoSQL.
Segurança
Ative a autenticação e nunca exponha a porta 27017 à internet sem proteção.
