MongoDB 知识基座。覆盖 Document Model、Aggregation Pipeline、Indexes、Replica Sets、Change Streams。供 devlab-mongodb-usage 通过 extends 继承。
Scanned 9/4/2026
Install to Claude Code
npx -y skills add seed-forge/harness-ai-kit --skill public-mongodb-expert-base --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Public Mongodb Expert Base?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/seed-forge-public-mongodb-expert-base)More formats (shields.io, HTML) on the badges page.
---
name: public-mongodb-expert-base
description: MongoDB 知识基座。覆盖 Document Model、Aggregation Pipeline、Indexes、Replica Sets、Change Streams。供 devlab-mongodb-usage 通过 extends 继承。
---
# MongoDB Knowledge Base
Foundational guidance for building applications with MongoDB.
> **Source**: Adapted from [mongodb/agent-skills](https://github.com/mongodb/agent-skills) (schema-design + query-optimizer + connection).
## Document Model
- Design documents around access patterns, not normalization.
- Embed related data that's always read together (1:1, 1:few).
- Reference (DBRef or manual ID) for data that grows unbounded or is accessed independently.
- Use arrays for ordered collections; use sub-documents for named fields.
- Avoid anti-patterns: unbounded arrays, massive documents (>16MB), excessive nesting.
## Schema Design Patterns
| Pattern | Use for |
|---------|---------|
| Embedding | 1:1, 1:few relationships, always-read-together data |
| Referencing | 1:many (unbounded), independent access |
| Bucket | Time-series data (group by time window) |
| Tree | Hierarchical data (materialized paths, nested sets) |
| Outlier | Handle occasional large documents separately |
| Extended Reference | Embed frequently accessed fields, reference the rest |
## Indexing
- Index fields used in queries, sorts, and aggregation `$match`/`$sort` stages.
- Compound index order matters: equality first, then range, then sort.
- Use `explain()` to verify index usage (look for `IXSCAN`, avoid `COLLSCAN`).
- Text indexes for full-text search; 2dsphere for geospatial queries.
- TTL indexes for auto-expiring documents.
- Monitor with `$indexStats` — drop unused indexes.
## Aggregation Pipeline
- Order stages for efficiency: `$match` and `$sort` first (use indexes).
- `$lookup` for joins (prefer embedding when possible).
- `$group` for aggregation; `$unwind` to flatten arrays before grouping.
- Use `$project` early to reduce document size through the pipeline.
- `$facet` for multiple aggregations in one query.
## Connection & Configuration
- Connection string: `mongodb://host:port/db?options`
- Use connection pooling (built into all official drivers).
- Set `w=majority` for write concern (durability).
- Set `readPreference=secondaryPreferred` for read scaling.
- Use `retryWrites=true` and `retryReads=true`.
## Replica Sets & Sharding
- Replica sets: 3 members minimum (primary + 2 secondaries).
- Read from secondaries for analytics/reporting (eventual consistency).
- Sharding: shard key choice is critical — high cardinality, frequently in queries.
- Never change shard key after collection is sharded (pre-6.0).
## Change Streams
- Real-time event processing from oplog.
- Use `watch()` on collection or database level.
- Resume with `resumeAfter` or `startAfter` token.
- Filter with aggregation pipeline match.
## Guardrails
- Never store unbounded arrays in a single document.
- Always index fields used in queries — verify with `explain()`.
- Use `w=majority` for critical writes.
- Set document TTL for temporary data.
- Monitor slow queries with profiler (`db.setProfilingLevel(1, {slowms: 100})`).
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!