更新猫鼬子架构对象
Posted
技术标签:
【中文标题】更新猫鼬子架构对象【英文标题】:Updating mongoose subSchema Object 【发布时间】:2021-08-19 12:17:00 【问题描述】:我的架构是这样的
const subSchema = new Schema( /*...*/ )
const mainSchema = new Schema(
//...,
foo:
type:subSchema,
default:
)
const Model = model('Model', mainSchema)
如果我这样做,整个 foo
将被 req.body
取代
Model.findByIdAndUpdate(_id, foo:req.body , new:true,runValidators:true )
但我希望 req.body
中存在的唯一字段被替换,其余字段保持不变
【问题讨论】:
【参考方案1】:您可以首先创建一个包含要从req.body
更新的字段的变量。比如:
let update = Object.keys(req.body).reduce((acc, cur) =>
acc[`foo.$cur`] = req.body[cur];
return acc;
, );
Model.findByIdAndUpdate(_id, update,...
【讨论】:
以上是关于更新猫鼬子架构对象的主要内容,如果未能解决你的问题,请参考以下文章