How do you handle stale data with denormalization?
Either update on change (when the user's name changes, update all their posts; expensive but consistent) or accept staleness (the name on old posts stays as it was; cheaper, fine for many cases). Decide based on the feature's needs.
Verify This Answer
Cross-check this information using these trusted sources:
More FAQs in API Design With Relationships: Interview Questions
Use refs (ObjectId fields with ref) and populate on read. For high-traffic reads, denormalize (copy key fields). For large N (messages, comments), use a separate collection with a ref. For small, tightly coupled data, embed.
Looping over documents and calling findById for each reference does N+1 queries. Fix: use populate to do it in 2 queries (one for the parent, one for all referenced docs).
Embed for small, tightly coupled data that always loads together (an address in a user). Reference for one-to-many with large N (messages, comments, payments). Embedding large arrays bloats documents; use refs.
Still have questions?
Browse all our FAQs or reach out to our support team
