Embedding zapisuje powiązane dane wewnątrz jednego dokumentu, co daje szybkie odczyty i atomowe aktualizacje, ale grozi dużymi dokumentami i duplikacją. Referencing przechowuje identyfikatory do innych dokumentów/kolekcji, zmniejsza duplikację i wspiera duże relacje, ale wymaga dodatkowych zapytań lub $lookup.
Rozwinięcie krótkiej odpowiedzi — co zwykle ma znaczenie w praktyce:
Krótki przykład (query + projection):
// Example: query + projection
const user = await db.collection('users').findOne(
{ email: '[email protected]' },
{ projection: { _id: 0, email: 1, name: 1 } },
)