Fornece padrões de administração e engenharia para MongoDB baseados na documentação oficial em português (mongodb.com/pt-br/docs). Cobre modelagem de documentos (Embedding vs Referencing), motor WiredTiger, Read/Write Concern, índices (Compound, Multikey, Text, TTL, 2dsphere), Aggregation Framework e Sharded Clusters.
Scanned 9/8/2026
Install to Claude Code
npx -y skills add dandgabr/skills --skill db-mongodb --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Db Mongodb?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/dandgabr-db-mongodb)More formats (shields.io, HTML) on the badges page.
---
name: "db-mongodb"
description: "Fornece padrões de administração e engenharia para MongoDB baseados na documentação oficial em português (mongodb.com/pt-br/docs). Cobre modelagem de documentos (Embedding vs Referencing), motor WiredTiger, Read/Write Concern, índices (Compound, Multikey, Text, TTL, 2dsphere), Aggregation Framework e Sharded Clusters."
---
# Habilidade de IA: Engenharia e Administração de MongoDB (db-mongodb)
Esta skill orienta a inteligência artificial a atuar como especialista no banco de dados Orientado a Documentos **MongoDB**, fundamentada na documentação oficial ([mongodb.com/pt-br/docs](https://www.mongodb.com/pt-br/docs/)). Cobre estratégias avançadas de modelagem de esquemas, motor de armazenamento WiredTiger, garantias de consistência (Write/Read Concern), otimização com índices, Aggregation Framework, Replica Sets e Sharded Clusters.
---
## 🧭 Modelagem de Dados Orientada a Documentos
No MongoDB, a modelagem é orientada pelos padrões de acesso da aplicação (consultas de leitura e gravação juntas), em vez da normalização estrita:
### 1. Incorporação (*Embedding*) vs. Referência (*Referencing*)
- **Embutir (Desnormalização - Preferencial)**:
- Utilize quando houver relacionamentos 1:1 ou 1:N (onde N é limitado e pequeno, ex: endereços de um cliente).
- Garante atomacidade de gravação e leituras de alto desempenho em uma única operação de E/S.
- **Referenciar (Normalização)**:
- Utilize quando houver relacionamentos 1:N (onde N é ilimitado ou muito grande, ex: logs de auditoria) ou N:M.
- Evita o limite máximo de tamanho de documento do BSON (16 MB).
### 2. Padrões de Projeto de Esquema (*Schema Design Patterns*)
- **Subset Pattern**: Guarda apenas os N dados mais recentes ou acessados no documento principal e o restante em uma coleção separada.
- **Bucket Pattern**: Agrupa dados de séries temporais (*time-series*) ou métricas de IoT por janelas de tempo (ex: 1 hora) para reduzir número de documentos e otimizar índices.
- **Outlier Pattern**: Trata documentos excepcionalmente grandes separadamente sem penalizar a maioria dos documentos padrão.
---
## 🛠️ Indexação Avançada e Otimização de Consultas
### 1. Tipos de Índices no MongoDB
- **Composto (*Compound Index*)**: Siga a regra ESR (**Equality, Sort, Range**):
- 1º: Campos de igualdade exata (`$eq`).
- 2º: Campos usados na ordenação (`sort()`).
- 3º: Campos de intervalo (`$gte`, `$lte`, `$in`).
- **Multikey Index**: Criado automaticamente ao indexar campos contendo arrays.
- **TTL Index**: Apaga documentos automaticamente após um tempo especificado:
```javascript
db.sessions.createIndex({ "createdAt": 1 }, { expireAfterSeconds: 3600 });
```
- **Geoespacial (`2dsphere`)**: Para consultas de proximidade (`$near`, `$geoWithin`).
### 2. Análise com `explain()`
Execute sempre a explicação com modo `executionStats` para diagnosticar varredura de coleção (*COLLSCAN*):
```javascript
db.orders.explain("executionStats").find({
status: "COMPLETED",
createdAt: { $gte: ISODate("2026-01-01") }
});
```
---
## 🔍 Aggregation Framework Nativo
Utilize pipelines de agregação para transformações complexas de dados de forma nativa e paralela:
```javascript
db.orders.aggregate([
// 1. Filtragem inicial usando índice
{ $match: { status: "COMPLETED", orderDate: { $gte: ISODate("2026-01-01") } } },
// 2. Junção com a coleção de clientes
{
$lookup: {
from: "customers",
localField: "customerId",
foreignField: "_id",
as: "customer_details"
}
},
// 3. Desfazer o array gerado pelo lookup
{ $unwind: "$customer_details" },
// 4. Agrupamento e cálculo de métricas
{
$group: {
_id: "$customer_details.segment",
totalRevenue: { $sum: "$totalAmount" },
averageOrderValue: { $avg: "$totalAmount" },
totalOrders: { $count: {} }
}
},
// 5. Ordenação do resultado
{ $sort: { totalRevenue: -1 } }
]);
```
---
## ⚙️ Concorrência, Consistência e Alta Disponibilidade
### 1. Consistência e Garantias de Durabilidade
- **Write Concern**: Controla a confirmação da escrita pelo cluster:
- `w: "majority"`: Garante que a escrita foi persistida no journal da maioria dos nós do Replica Set (previne *rollback* no failover).
- **Read Concern**:
- `rc: "majority"`: Retorna apenas dados confirmados pela maioria dos nós.
- `rc: "linearizable"`: Garante leitura estritamente em tempo real (evita leituras obsoletas).
### 2. Arquitetura de Produção
- **Replica Sets**: Mínimo de 3 nós votantes (1 Primário e 2 Secundários) para automatizar a eleição e o failover sem indisponibilidade.
- **Sharded Cluster**: Para escalabilidade horizontal em múltiplos terabytes de dados. Escolha a **Shard Key** com atenção para evitar *jumbo chunks* ou pontos quentes (*hotspots*) de gravação.
---
## 🔒 Hardening e Conformidade de Segurança (OWASP ASVS & CIS MongoDB Benchmark)
- **Autenticação Obrigatória e TLS**:
- Habilite autenticação de controle de acesso (`security.authorization: enabled`).
- Exija conexões cifradas TLS 1.3/1.2 (`net.tls.mode: requireTLS`).
- **Autenticação Interna do Cluster**: Utilize certificados X.509 ou chave de arquivo (*keyFile*) para comunicação entre nós de Replica Set ou Shards.
- **Criptografia no Nível de Campo (CSFLE - Client-Side Field Level Encryption)**: Cifre dados sensíveis (PII, números de cartão) no cliente usando chaves KMS antes da transmissão para o banco.
- **Validação de Esquema (`$jsonSchema`)**: Aplique Schema Validation na coleção para evitar injeção de operador NoSQL (`$where`, `$gt: ""`).
---
## 🔗 Integração com Outras Skills
- Para integrar MongoDB em APIs Node.js/TypeScript ou Python, consulte [backend-developer](../../roles/backend-developer/SKILL.md), [lang-typescript](../../languages/lang-typescript/SKILL.md) e [lang-python](../../languages/lang-python/SKILL.md).
- Para diretrizes gerais de administração de bancos de dados NoSQL e SQL, consulte [dba-database-administrator](../../roles/dba-database-administrator/SKILL.md).
- Para validação de segurança e conformidade de dados (V8/V14), consulte [appsec-owasp-asvs](../../security/appsec/appsec-owasp-asvs/SKILL.md), [cis-controls](../../security/grc-compliance/cis-controls/SKILL.md) e [security-privacy](../../security/grc-compliance/security-privacy/SKILL.md).
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!