# Database Mongodb

> Apply MongoDB data-modeling, indexing, and query rules from access patterns. Use when designing schemas, choosing embed vs reference, or tuning MongoDB query behavior.

- Skill: `hoangnguyen0403/database-mongodb-2` (Agent Skill, multi-file: 7 files)
- Install (CLI): `npx skillmds@latest add hoangnguyen0403/database-mongodb-2`
- Raw SKILL.md: https://api.skillmd.com/api/skills/hoangnguyen0403/database-mongodb-2/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- Author: HoangNguyen0403 (https://skillmd.com/u/hoangnguyen0403)
- Updated: 2026-09-22
- Page: https://skillmd.com/skills/hoangnguyen0403/database-mongodb-2

---

# MongoDB Best Practices

## **Priority: P0 (CRITICAL)**

## Rules

- Model from access patterns: data read together should usually live together.
- Embed for bounded one-to-few data; reference for unbounded growth or independent lifecycle.
- Build indexes for real queries, not theoretical flexibility. Use ESR ordering for equality -> sort -> range compound indexes.
- Use transactions only when single-document guarantees are insufficient.

## Verify

- [ ] Embed vs reference choice matches cardinality and lifecycle.
- [ ] Compound index order matches equality -> sort -> range access.
- [ ] Large pagination uses cursor patterns, not deep `skip()`.
- [ ] Explain output supports the chosen indexes; review `keysExamined` and `docsExamined`.
- [ ] Unbounded arrays and hot shard keys were reviewed.

## Anti-Patterns

- **No unbounded arrays**: Use `$push` with `$slice` or redesign using Bucket Pattern.
- **No client-side filtering**: Project only needed fields; never fetch full docs to filter in memory.
- **No deep nesting**: Keep nesting ≤4 levels; flatten paths that frequently queried.
- **No index cargo cult**: each index must map to a read path and write tradeoff.

## References

- [Framework Map](../references/framework-map.md)
- [Best Practices Guide](references/best-practices.md)
- [Anti-Patterns](references/anti-patterns.md)
- [Postgres vs Mongo Comparison](references/postgres-comparison.md)

