【发布时间】:2020-03-05 06:26:10
【问题描述】:
当 json 元素嵌套时,如何使用 Mongoose 只更新文档中的一个片段?
我想更新一个文档,只需将“darkMode”从 false 设置为 true,而无需 GET 和 PUT 整个“设置”部分。 Mongoose 可以做到这一点吗?
"settings": {
"darkMode": false,
"tipOfTheDay": true,
"paperFormat": "DINA4",
},
如果我 PUT,我将丢失文档“设置”部分中的所有内容:
"settings": {
"darkMode": true,
},
我的 NodeJS 后端看起来像这样。我目前正在使用 findByIdAndUpdate 。也许有更好的方法?
exports.updateProfile = async (req, res, next) => {
const profile = await Profile.findByIdAndUpdate(req.params.id, req.body, {
new: true,
runValidators: true
});
if (!profile) {
return res.status(400).json({success: false});
}
res.status(200).json({success: true, data: profile});
}
【问题讨论】:
-
你需要使用
.符号settings.darkMode : true -
这能回答你的问题吗? mongodb accessing subdocuments