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 |