Embed or reference
When to keep related data inside the document and when in another collection.
Related data can go inside the document that uses it or in another collection, joined with $lookup. The choice decides how many reads your application makes.
How it works
Embedding keeps the data inside the document: it is read and written with it in a single operation. A document always lives whole in one range. Referencing keeps an identifier and the data in another collection; reading both together needs $lookup or two queries.
What it means for your application
Embed what is always read with the document and grows little, such as the lines of an order. Reference what is shared by many documents or grows without limit, such as the orders of a customer. A write that touches two collections needs a transaction if it must be atomic.
Limits
A document cannot go over MongoDB's maximum BSON size. A $lookup between collections spread over many ranges reads from several nodes.