在下面的代码片段中,后期操作中需要所有字段,并且架构定义中的必需属性标记为true。发布后,我需要更新执行特定操作的医生,并且我已创建了把动作。我不必在put动作中插入procedureid,因为它已经存在于db中。由于必需属性被标记为必需属性,我是否需要始终从客户端传递procedureid的值?
如果是,则可以创建一个模式,使得所有字段在后期操作中都是必需的,在put操作中是可选的?
var mongoose = require('mongoose');
var hospitalDoctorSchema = new Schema({
Treatment: {
procedureid: { type: Number,required: true, unique: true,default: 0 },
doctor: {
doctorId: { type: Number, required: true, unique: true, dropDups: true, default: 0 },
},
},
updated_at: { type: Date, required: true, default: Date.now }
});
答案 0 :(得分:0)
使用findOneAndUpdate只需修改需要更改的字段。您无需更新所有字段。
Doctor.findOneAndUpdate({_id: "59861d89be237e5c1e223cfc"}, {"$set": {"Treatment.doctor.doctorId": 747}}, {"new": true}, function(err, doctor){
//doctor is the modified object
});