【发布时间】:2017-07-30 19:52:36
【问题描述】:
我正在更新 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);
【问题讨论】:
-
在架构中定义了
procedureid,那么为什么要在预保存中插入departmentId? -
抱歉。从大型模型中复制一些重要的代码 sn-p 时出现拼写错误。问题现已更正。
-
在创建 obj 时,你是通过
[{procedureid: "something"}]还是什么都不传递?因为如果什么都没有,它应该抛出错误,因为Treatment还不存在。如果你能说出你到底想达到什么目标,那将会很有帮助。可能有更好的解决方案。 -
procedure id 是一个唯一的自动生成编号。每当管理员插入一个新程序时,它都会创建一个新的唯一编号并分配给 procedureid。因为它是由服务器端代码在内部创建的,[{procedureid: "something "}] 不是从控制器传递的,而是我更喜欢在每次 api 调用期间自动生成
-
治疗是一个数组。所以你的意思是说每当你创建(或稍后更新)时,它应该插入一个带有新procedureid的新对象?