我正在更新mongoose预保存挂钩中的必填字段procedureid
的值。但是,这并没有反映在我的MongoDB中。
我在这里做错了什么?
const collection = 'hospital_doctor_details';
var hospitalDoctorSchema = new Schema({
Treatment: [{
procedureid: { type: Number, required: true},
}],
updated_at: { type: Date, required: true, default: Date.now }
});
hospitalDoctorSchema.pre('save', function (next) {
var self = this;
var treatmentcnt =parseInt( this.Treatment.length)-1
self.Treatment[treatmentcnt].procedureid= 1234;
next();
});
//create collection.
module.exports.hospitalModel = mongoose.model(collection, hospitalDoctorSchema);
答案 0 :(得分:0)
在preSave
中,您正在尝试访问一个数组,我从您的评论中了解到的数据在创建时不存在。因此,您需要将空数组分配给Treatment
,然后推送包含procedureid
的对象。
hospitalDoctorSchema.pre('save', function (next) {
this.Treatment = this.Treatment? this.Treatment : [];
this.Treatment.push({
procedureid : 1234
});
next();
});
这会在后续保存(Treatment
和find
)上将更多对象推送到save
数组,这似乎就是您想要的。