Embedding хранит связанные данные внутри одного документа (денормализация), а Referencing хранит связанные данные в отдельных коллекциях с привязкой по идентификаторам (нормализация).
// Embedded example
{ _id: 1, name: "Alice", address: { city: "NYC", zip: "10001" } }
$lookup для объединения данных// Referenced example
{ _id: 1, name: "Alice", addressId: 42 }
{ _id: 42, city: "NYC", zip: "10001" }
Используй embedding, когда:
Используй referencing, когда:
Правильный выбор зависит от твоих паттернов доступа к данным. Embedding оптимизирует скорость чтения и простоту, а referencing оптимизирует консистентность данных и гибкость. На практике схемы MongoDB часто комбинируют оба подхода в зависимости от конкретных потребностей каждой связи.
Встраивание данных в единый документ MongoDB гарантирует, что все операции над документом атомарны, даже при изменении вложенных массивов со сотнями элементов.
Новый — ещё не проверен сообществом
Вы