для себя сайт по книгам, я создал коллекцию с жанрами (Id, name). Хочу в документ с книгой добавлять массив жанров, каким образом описать его? Какие типы? Что хранить? (Только id или полный объект) Как потом получать сджоиненные значения? (Работал только с mysql и postgres, впервые с mongodb работаю)
Сделайте коллекцию жанров, храните ссылки (_id)
то есть я в массив добавляю просто objId нужных жанров?
А как получить при выборке полный объект?
Джойны в монге не такие быстрые как в реляционках. Я бы посоветовал жанры хранить сразу в документах книг
На чём основывается это утверждение?
На личном опыте. В моем случае переджойнить 100 млн с 200 млн записей получилось на 40% медленнее, чем в постгресе
а можете сказать в чем потребность джойнить 100кк с 200кк доков? интересен кейс
Люди и адреса. Две разных коллекции
Всё зависит от того как вы хотите потом эти жанры использовать
В документ книги добавлять массив жанров, выводить при выдаче на клиент наименования жанров, также организовать фильтры по ним
Даже в специфичной вертике так редко джойнят. Обычно для этих целей с такими объемами создаётся отдельная материализованные таблица, куда данные джобами/триггерами заливаются/обновляются инкрементально. Так скорость доступа до данных гораздо лучше, хоть и требуется больше места
Да. Так сделаю. Это был просто эксперимент
Обсуждают сегодня