O MongoDB é um banco de dados NoSQL que utiliza documentos em formato BSON (Binary JSON) para armazenar dados. Aqui estão os principais comandos e operações organizados por categoria:
Os comandos do MongoDB são baseados em JavaScript (JS). Quando você interage com o MongoDB através do shell (mongo shell), você está utilizando uma interface que aceita comandos escritos em uma sintaxe semelhante à do JavaScript. Isso se aplica a operações como inserção, consulta, atualização e exclusão de documentos.
mongo # Conecta ao servidor local
mongo --host <host> --port <porta> # Conecta a servidor remoto
mongo "mongodb://user:senha@host:porta/banco" # Conexão com autenticação
db.version() # Exibe a versão do MongoDB
db.getMongo() # Mostra detalhes da conexão
db.serverStatus() # Status do servidor
Caso o banco não exista, ele será criado. Contudo, ele apenas será persistido quando a primeira coleção foi inserida.
use nome_banco # Seleciona ou cria um banco de dados
show dbs # Lista todos os bancos de dados
db.dropDatabase() # Remove o banco atual
db.stats() # Estatísticas do banco atual
No MongoDB, uma coleção (ou "collection" em inglês) é um agrupamento de documentos que são armazenados em um banco de dados. As coleções são análogas a tabelas em bancos de dados relacionais, mas com algumas diferenças importantes: sem esquema e flexível
db.createCollection("clientes") # Cria coleção com opções específicas
db.createCollection("logs", { capped: true, size: 1000000 }) // Máxima em tamanho, no caso 1000000 bytes
show collections # Lista todas as coleções
db.getCollectionNames() # Lista nomes das coleções
db.clientes.stats() # Estatísticas da coleção
db.clientes.totalSize() # Tamanho total da coleção
db.clientes.drop() # Remove a coleção
db.clientes.insertOne({
nome: "João Silva",
idade: 30,
status: "ativo"
})
db.clientes.insertMany([
{ nome: "Maria", idade: 25 },
{ nome: "Carlos", idade: 35 }
])
db.clientes.find() # Todos os documentos
db.clientes.findOne() # Primeiro documento
db.clientes.find().limit(5) # Limita resultados
db.clientes.find().skip(10) # Pula documentos
db.clientes.find().sort({nome: 1}) # Ordenação (1=asc, -1=desc)
db.produtos.find({_id: ObjectId('67eddf04c98ce2b329069e5f')})
db.clientes.updateOne(
{ nome: "João" },
{ $set: { idade: 31 } } // O operador $set no MongoDB é usado para atualizar o valor de um campo em um documento. Se o campo já existe, ele atualiza; se não existe, ele cria o campo com o valor informado.
)
db.clientes.updateMany(
{ status: "ativo" },
{ $inc: { pontos: 10 } } // O operador $inc no MongoDB é usado para incrementar (ou decrementar) valores numéricos em um documento. Ele é muito útil quando você quer somar, subtrair ou ajustar contadores, pontuações, quantidades,
)
db.clientes.replaceOne(
{ nome: "Maria" },
{ nome: "Maria Silva", idade: 26 }
)
db.clientes.deleteOne({ nome: "João" })
db.clientes.deleteMany({ status: "inativo" })
// Comparação
db.clientes.find({ idade: { $gt: 25, $lte: 40 } })
// Lógicos
db.clientes.find({ $or: [{ status: "ativo" }, { idade: { $lt: 30 } }] })
// Arrays
db.produtos.find({ tags: { $in: ["eletrônico", "promoção"] } })
db.produtos.find({ tags: { $all: ["novo", "importado"] } })
// Existência
db.clientes.find({ telefone: { $exists: true } })
// Regex
db.clientes.find({ nome: { $regex: /^J/i } })
Categoria | Operador | Exemplo | Descrição |
---|---|---|---|
Comparação | $eq |
{ ano: { $eq: 2021 } } |
Igual a |
$gt |
{ paginas: { $gt: 200 } } |
Maior que | |
$lt |
{ paginas: { $lt: 300 } } |
Menor que | |
$in |
{ generos: { $in: ["tecnologia", "ficção"] } } |
Pertence a um dos valores do array | |
Lógicos | $and |
{ $and: [ { ano: 2021 }, { disponivel: true } ] } |
Todos os critérios devem ser verdadeiros |
$or |
{ $or: [ { ano: 2021 }, { disponivel: true } ] } |
Pelo menos um critério deve ser verdadeiro | |
Arrays/Subdocumentos | $elemMatch |
{ autores: { $elemMatch: { idade: { $gt: 40 } } } } |
Encontra documentos que tenham um subdocumento correspondente |
{ $set: { campo: valor } } # Define valor
{ $unset: { campo: "" } } # Remove campo
{ $inc: { campo: valor } } # Incrementa valor
{ $push: { array: valor } } # Adiciona a array
{ $addToSet: { array: valor } } # Adiciona se não existir
{ $pull: { array: valor } } # Remove de array
db.vendas.aggregate([
{ $match: { data: { $gt: new Date("2023-01-01") } } },
{ $group: { _id: "$cliente", total: { $sum: "$valor" } } },
{ $sort: { total: -1 } },
{ $limit: 5 }
])
db.clientes.createIndex({ nome: 1 }) # Índice simples
db.clientes.createIndex({ nome: 1, idade: -1 }) # Índice composto
db.clientes.getIndexes() # Lista índices
db.clientes.dropIndex("nome_1") # Remove índice
db.createUser({
user: "admin",
pwd: "senha",
roles: ["root"]
})
db.auth("usuario", "senha") # Autentica no banco atual
show users # Lista usuários
mongodump --db nome_banco # Backup do banco
mongorestore --db nome_banco # Restaura banco
session = db.getMongo().startSession()
session.startTransaction()
try {
session.getDatabase("banco").colecao.updateOne(...)
session.getDatabase("banco").outraColecao.insertOne(...)
session.commitTransaction()
} catch (error) {
session.abortTransaction()
} finally {
session.endSession()
}
db.currentOp() # Operações em execução
db.killOp(opid) # Cancela operação
db.collection.explain().find() # Analisa plano de execução
Esta lista abrange desde operações básicas até recursos avançados do MongoDB, fornecendo um guia completo para desenvolvedores e administradores de bancos de dados.