Embed khi dữ liệu con thuộc aggregate cha, thường được đọc cùng nhau, kích thước bounded và không cần update độc lập nhiều. Reference khi dữ liệu lớn, quan hệ many-to-many, cần query độc lập, hoặc document có thể vượt size limit.
Ví dụ embed addresses trong user nếu số lượng nhỏ:
javascript
{
_id: ObjectId("..."),
email: "a@example.com",
addresses: [{ city: "HCM", type: "shipping" }]
}Thiết kế MongoDB nên dựa vào query pattern, không phải chuyển 1-1 từ ERD relational.