MongoDB design patterns for common scenarios:
Bucket pattern (time-series):
{hour: "2024-01-15T10", readings: [{t: 10:01, v: 23}, ...]}
Group related documents to reduce document count.
Computed pattern: Store computed values (totals, averages) in documents. Update on write.
Subset pattern: Embed frequently accessed subset. Store full data in separate collection.
Schema versioning:
{schema_version: 2, ...}
Handle migrations gracefully with version field.
Design for your queries. MongoDB is flexible but poor design still hurts performance.