我有用户设置页面,我想允许用户更新用户架构的多个字段。是否可以根据已更新的字段使用单个查询更新用户收集项。
路线
exports.updateUser = function(req, res){
User.update({_id: '123'}, {
$set: {
mail: req.body.mail,
name: req.body.name,
lastName: req.body.lastName,
age: req.body.age
// ... and so on
}
})
}
如果用户仅更新电子邮件,则所有其他字段均为null或未定义。
是否有任何方法只更新req.body中显示的字段,而不用空值覆盖db项。
我知道可以为每个字段创建一个If语句,但也许有更好的解决方案吗?
答案 0 :(得分:2)
你应该可以这样做:
exports.updateUser = function(req, res){
User.update({_id: '123'}, {
$set: req.body
})
}
只要您的req.body
没有任何额外内容。可能想先验证一下。