Что дает {type: mongoose.Schema.Types.ObjectId, ref: 'Модель'}?
Среди большого объема информации в свободном доступе по этой теме я не нашел ответа, явно мне не очевидного, на этот вопрос:
Cоздаю схему модуль mongoose. Вот что мне дает написание вот такой строки?
{type: mongoose.Schema.Types.ObjectId, ref: 'MountingElement'}
У меня пет проект, я начинающий, спросить не у кого. Полная ситуация выглядит так: у меня есть две модели, Первая - перечень всевозможных типов крепежа(саморезы, скобы, дюбеля и т.д. разных мастей), Вторая - тип монтируемой поверхности(бетон, дерево, пластик и т.д.), у каждой монтируемой поверхности есть ограниченный перечень допуситмого для нее крепежа. Вот как выглядит эта модель:
const MountingSurface = mongoose.Schema({
name: {
type:String,
unique:true,
require:true
},
availableElements: [
{type: mongoose.Schema.Types.ObjectId, ref: 'MountingElement'}
]})
и вот я с фронта сделал запрос => получил поверхности => и мне ведь нужно как-то отобразить какие саморезы доступны для каждой поверхности из списка, и чего мне делать с этими id-шниками? Мне нужно на уровне логики сервера дозапрашивать данные по каждому крепежу с базы данных, чтобы узнать как называется этот крепеж и прочие его характеристики? Никак это нельзя решить ещё на уровне базы данных, до сервера? мне получается неоднократно придется запрашивать один и тот же крепеж столько, ко скольким типам поверхностей он подходит? Если хранить в крепеже доступные поверхности то картина не поменяется. И вообще с таким же успехом я могу вместо этой конструкции, хранить просто id-шники в строке ну типо: availableElements: [{type: String}] и все, но тогда для чего же конструкция availableElements: [{type: mongoose.Schema.Types.ObjectId, ref: 'MountingElement'}] придумана? Крепежа много, и монтируемых поверхностей много, и те и те редактируется отдельно, поэтому необходимо их так разделять на отдельные схемы
Ответы (1 шт):
как написал Yaant в комментарии: по этой ссылке - https://mongoosejs.com/docs/populate.html вся исчерпывающая информация