Skip to content

Folha de dicas de comandos comuns do MongoDB

O MongoDB é um sistema de base de dados de código aberto baseado no armazenamento de ficheiros distribuídos e é uma das bases de dados NoSQL mais populares da atualidade. Esta folha de dicas foca-se em operações comuns no CLI mongosh.

Ligação e Gestão

Comando Descrição
mongosh Ligar ao MongoDB na porta local
use <db_name> Mudar para ou criar base de dados
db Ver base de dados atual
show dbs Listar todas as bases de dados
show collections Listar todas as coleções
exit Sair da Shell

Operações de Coleção (DDL)

Comando Descrição
db.createCollection("users") Criar coleção manualmente
db.users.drop() Eliminar coleção especificada
db.users.stats() Ver estatísticas da coleção
db.users.renameCollection("people") Mudar nome da coleção

Operações de Documentos (CRUD)

Insert

// Inserir documentos
db.users.insertOne({ name: "Alice", age: 25 });
db.users.insertMany([{ name: "Bob" }, { name: "Charlie" }]);

Read

// Consultar documentos
db.users.find().pretty(); 
db.users.find({ age: { $gt: 20 } }).sort({ age: 1 }).limit(10); 
db.users.findOne({ name: "Alice" }); 

Update

// Atualizar documentos
db.users.updateOne({ name: "Alice" }, { $set: { age: 26 } });
db.users.updateMany({ age: { $lt: 18 } }, { $set: { status: "minor" } });

Delete

// Eliminar documentos
db.users.deleteOne({ _id: ObjectId("...") });
db.users.deleteMany({ status: "inactive" });

Operadores Comuns

Type Operator Descrição
Comparação $gt, $gte, $lt, $lte, $ne Maior que, Maior ou igual a, Menor que, Menor ou igual a, Não igual a
Lógica $and, $or, $not, $nor E, Ou, Não, Nem… nem…
Campo $set, $unset, $inc, $rename Definir valor, Remover campo, Atualização incremental, Mudar nome do campo
Array $push, $pop, $pull, $addToSet Adicionar, Extrair último, Remover correspondências, Adicionar se único

Pipeline de Agregação

db.orders.aggregate([
  { $match: { status: "A" } },
  { $group: { _id: "$cust_id", total: { $sum: "$amount" } } },
  { $sort: { total: -1 } }
]);

Gestão de Índices

Comando Descrição
db.users.createIndex({ name: 1 }) Criar índice ascendente
db.users.createIndex({ email: 1 }, { unique: true }) Criar índice único
db.users.getIndexes() Ver todos os índices
db.users.dropIndex("name_1") Eliminar índice