Skip to main content

db-mongodb

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.

Zur Installation springen

Quellinformationen

Repository
dandgabr/skills
Letzte Quellaktivität
7. September 2026 um 01:33
Erkannte Sprache von SKILL.md
Portugiesisch
Sterne
9
Forks
0

Installationsoptionen

Standardmäßig ist der Prompt ausgewählt, der zuerst die Quelle prüft. Sie können zu einem direkten Befehl wechseln oder eine lokale Kopie herunterladen.

Quelldateien prüfen

Lesen Sie SKILL.md und alle von SkillsMP angezeigten Begleitdateien, bevor Sie sich für eine Installation entscheiden.

Datei-Explorer
5 Dateien

SKILL.md wird angezeigt

SKILL.md
Quellanweisungen · Schreibgeschützte Vorschau
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).
Auf GitHub ansehen