Заселить двумя моделями пн goose node.js? - PullRequest
1 голос
/ 12 июля 2020

Я использую mon goose как orm и mongodb как базу данных и express framework в node.js для создания приложения системы управления обучением lms

В приложении есть две модели: учитель и ученик

Проблема в том, что у меня есть массив, содержащий идентификаторы объектов для них обоих, смешанных

И я хочу заполнить каждое поле в соответствии с его моделью

Что-то вроде:

const array = [
   ' teacherobjectid',
   ' studentobjectid',
   ....
]

Я хочу указать идентификатор объекта ученика в модели ученика и учитель в модель учителя

Пожалуйста, помогите

Спасибо,

1 Ответ

1 голос
/ 12 июля 2020

вы можете использовать что-то вроде этого:

let my_array = ["student_id", "teacher_id"]


let students = Student.find({_id: {$in: my_array}})

let teachers = Teachers.find({_id: {$in:my_array}})

но это не очень хорошая идея, потому что для каждого идентификатора вы должны получить два запроса.

попробуйте использовать ref в схеме вашей модели для разделения сущностей идентификаторов. если ваш массив происходит из некоторой коллекции mon go:

student_ids: [{
        type: mongoose.Schema.ObjectId,
        ref: "Student",
    }],

teacher_ids: [{
        type: mongoose.Schema.ObjectId,
        ref: "Teacher",
    }],
...