我有这个模型
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
我在模型
中创建此方法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);
}
},
我认为第一和第二方法是错误的,但是我试图在半天之内解决它,但是仍然没有运气。实现目标的最佳方法是什么?
我的模型弄错了吗?还是我创建的方法不正确?
答案 0 :(得分:1)
用复数..重命名猫鼬模型,而用“ S”表示单数,“包”将其更改为“包”