Если вы действительно хотите сделать это с вложенными документами, вы можете просто напечатать вопросы в виде массива объектов и поместить в него все, что вы хотите:
...
questions: [{
type: Object
}],
...
Если у вас все в порядке с созданием нескольких коллекций, вы можете используйте mongooses refPath
, чтобы сделать это с более строгими схемами:
...
questions: [{
question: {
type: ObjectId,
refPath: 'questions.questionType'
},
questionType: {
type: String,
enum: ['MultipleChoice', 'Matching', ...]
},
}]
...
Затем вы можете создать все различные схемы для ваших вопросов и добавить их модели (например, 'MultipleChoice'
и 'Matching'
) к перечислению questionType
. Впоследствии, когда вам нужно получить доступ к вопросам, вы просто заполняете их .populate('questions')
в объекте запроса.