猫鼬模型 - 需要澄清

时间:2017-08-05 18:01:36

标签: node.js mongodb mongoose

在下面的代码片段中,后期操作中需要所有字段,并且架构定义中的必需属性标记为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 }
});

1 个答案:

答案 0 :(得分:0)

使用findOneAndUpdate只需修改需要更改的字段。您无需更新所有字段。

Doctor.findOneAndUpdate({_id: "59861d89be237e5c1e223cfc"}, {"$set": {"Treatment.doctor.doctorId": 747}}, {"new": true}, function(err, doctor){
    //doctor is the modified object
});