У меня есть модель
student: {
package:{
type: mongoose.Schema.Types.ObjectId,
ref: 'Package',
},
history: [
{
package: {
type: mongoose.Schema.Types.ObjectId,
ref: 'Package',
},
orderDate: {
type: Date,
default: new Date().toLocaleDateString('id'),
},
Status: {
type: String,
default: 'Pending',
},
},
],
}
Я хочу обновить Student.package
и Student.history
за 1 проход
Iсоздать этот метод в моей модели
StudentSchema.methods.updatePackage= function(idPackage) {
this.package = idPackage;
return this.save();
};
StudentSchema.methods.updateHistory= function(idPackage) {
this.history.push(idPackage);
return this.save();
};
, и я пытаюсь сделать что-то подобное в моем контроллере
buyPack: async (req, res, next) => {
try {
let dataStudent = await Student.findById('5b83443040e3751bb4e32a21');
await dataStudent.updatePackage(req.body);
await dataStudent.updateHistory(req.body);
return res.json(dataStudent);
} catch (err) {
console.log(err);
next(err);
}
},
Iдумаю, что методы first и second неверны, но я пытался выяснить это почти за полдня, но все же не повезло.Каков наилучший способ достижения моих целей?
Я ошибаюсь в своей модели?или методы, которые я создал, неправильны?