使用单个查询更新可选字段。猫鼬和 expressjs
Updating optional fields with single query. mongoose & expressjs
我有用户设置页面,我想允许用户从用户模式更新多个字段。是否可以根据已更新的字段使用单个查询来更新用户集合项。
路线
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
}
})
}
如果用户仅更新电子邮件,则所有其他字段均为空或未定义。
有什么方法可以只更新 req.body 中显示的字段而不用空值覆盖数据库项。
我知道可以为每个字段创建一个 If 语句,但也许有更好的解决方案?
你应该可以做到:
exports.updateUser = function(req, res){
User.update({_id: '123'}, {
$set: req.body
})
}
只要你的req.body
里面没有任何多余的东西。可能想先验证一下。
我有用户设置页面,我想允许用户从用户模式更新多个字段。是否可以根据已更新的字段使用单个查询来更新用户集合项。
路线
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
}
})
}
如果用户仅更新电子邮件,则所有其他字段均为空或未定义。
有什么方法可以只更新 req.body 中显示的字段而不用空值覆盖数据库项。
我知道可以为每个字段创建一个 If 语句,但也许有更好的解决方案?
你应该可以做到:
exports.updateUser = function(req, res){
User.update({_id: '123'}, {
$set: req.body
})
}
只要你的req.body
里面没有任何多余的东西。可能想先验证一下。