← ClaudeAtlas

mir-database-mongolisted

Make It Right (MongoDB module). MongoDB 8.x mechanics the engine-independent pillar omits: embed vs reference decided per relationship by access pattern, cardinality, update frequency; the 16 MB BSON limit and unbounded arrays; $jsonSchema validators — a collection accepts any shape until you add one; write concern w:1 losing acknowledged writes on failover; read concern, stale secondary reads, retryable writes — updateMany/deleteMany are NOT retryable; the 60-second transaction lifetime limit vs a single-document atomic update; compound-index prefix rules, ESR ordering, covered queries; aggregation stage ordering and the 100 MB stage limit; shard-key selection — a monotonic key creates a hot shard; NoSQL operator injection. Chains: mir-database (the gates) → this. TRIGGER only when the datastore is MongoDB itself (Community, Enterprise, Atlas) — designing a collection or document schema, picking a shard key, writing an aggregation pipeline or index, or debugging a Mongo consistency, concurrency, or query-pla
anantbhandarkar/make-it-right · ★ 15 · API & Backend · score 81
Install: claude install-skill anantbhandarkar/make-it-right
# /mir-database-mongo · Make It Right (MongoDB) Engine module. `mir-database` runs the gates and decides what is true of the data. **This file carries only MongoDB's mechanics.** Use it at Gate 0 (engine fitness), Gate 5 (design), Gate 6 (collections, validators, indexes), Gate 7 (review). **Release state, verified 13 Aug 2026** (mongodb.com/docs/manual/release-notes, /reference/versioning): | Release | Status | What it changes for you | |---|---|---| | **8.3** (8.3.8, Aug 2026) | current | Cost-Based Ranker is now the **default** plan selector — query plans can change on upgrade. `removeShard` replaced by `startShardDraining` / `shardDrainingStatus` / `commitShardRemoval`. Only single-version downgrades | | **8.2** | supported minor | Queryable Encryption prefix/suffix/substring queries are **public preview** — not for production; GA will be incompatible with the preview format | | **8.0** | major, 5-year lifecycle | `j:true` now requires **every member counted by `w`** to journal (pre-8.0 only the primary did). `w:"majority"` members apply asynchronously after durably writing the oplog entry | | **7.0** | major, supported | `analyzeShardKey` / `configureQueryAnalyzer` land here | Majors ship every 2 years with a 5-year lifecycle. Minors (8.1 → 8.2 → 8.3) must be upgraded through **sequentially**, each step a binary upgrade **plus** an FCV bump. Pin a major if you need Atlas Live Migration or `mongosync` — minors do not always support them. --- ## 1. Schema design **E