Проектирование схемы MongoDB всегда должно быть обусловлено паттернами доступа твоего приложения, а не самой структурой данных. Ключевое решение — встраивать или ссылаться на связанные данные.
Используй встраивание для:
Встраивание улучшает производительность чтения, возвращая все необходимые данные в одном запросе.
Используй ссылки для:
Ссылки делают документы компактнее и предотвращают превышение ограничения на размер документа в 16МБ.
$lookup экономно — он выполняет джойн между коллекциями и может значительно снизить производительность при масштабированииОдин-к-одному / Один-ко-многим → Встраивай
Один-ко-многим (большой объем) → Ссылайся
Многие-ко-многим → Ссылайся
Частые совместные чтения → Денормализуй выборочно
Лучшая схема — та, которая минимизирует сложность запросов и максимизирует эффективность чтения именно для твоего случая.
В проектировании схем MongoDB всегда следует отдавать предпочтение встраиванию, потому что оно исключает необходимость в объединениях и всегда обеспечивает лучшую производительность независимо от кардинальности связей или паттернов обновления.
Новый — ещё не проверен сообществом
Вы