Mongodb 更新mongoose子模式对象
我的模式是这样的Mongodb 更新mongoose子模式对象,mongodb,express,mongoose,mongoose-schema,subdocument,Mongodb,Express,Mongoose,Mongoose Schema,Subdocument,我的模式是这样的 const subSchema=新模式({/*…*/}) const mainSchema=新模式({ //..., 傅:{ 类型:子模式, 默认值:{} } }) 常量模型=模型('Model',mainSchema) 如果我这样做,整个foo将被req.body Model.findByIdAndUpdate(_id,{foo:req.body},{new:true,runValidators:true}) 但我希望替换req.body中仅有的字段,其余字段保持不变您可
const subSchema=新模式({/*…*/})
const mainSchema=新模式({
//...,
傅:{
类型:子模式,
默认值:{}
}
})
常量模型=模型('Model',mainSchema)
如果我这样做,整个foo
将被req.body
Model.findByIdAndUpdate(_id,{foo:req.body},{new:true,runValidators:true})
但我希望替换
req.body
中仅有的字段,其余字段保持不变您可以创建一个变量,其中包含要首先从req.body
更新的字段。比如:
let update = Object.keys(req.body).reduce((acc, cur) => {
acc[`foo.${cur}`] = req.body[cur];
return acc;
}, {});
Model.findByIdAndUpdate(_id, update,...