MongoDB Best Practices: Schema Design and Indexing
MongoDB’s flexible documents are powerful-but schema design still matters for performance and maintainability.
Embedding vs Referencing
Embed when data is read together and has a one-to-few relationship (user preferences inside a user doc). Reference when data grows unbounded or is shared (comments on posts).
Indexing
db.orders.createIndex({ customerId: 1, createdAt: -1 });
Compound indexes support queries that filter and sort on the same fields. Use .explain() to verify index usage.
Validation and Migrations
Use JSON Schema validation at the collection level. Version documents with a schemaVersion field for gradual migrations.
Conclusion
MongoDB fits product catalogs, content systems, and event logs. Pair it with Mongoose or Prisma for TypeScript safety and treat indexes as first-class design decisions.