Node.js 使用单个查询更新可选字段。猫鼬;快车
我有用户设置页面,我想允许用户从用户模式更新多个字段。是否可以根据已更新的字段使用单个查询更新用户集合项 路线Node.js 使用单个查询更新可选字段。猫鼬;快车,node.js,mongodb,express,mongoose,Node.js,Mongodb,Express,Mongoose,我有用户设置页面,我想允许用户从用户模式更新多个字段。是否可以根据已更新的字段使用单个查询更新用户集合项 路线 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.a
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中显示的字段,而不使用空值覆盖db项
我知道可以为每个字段创建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: req.body
})
}
只要您的
req.body
中没有任何额外内容。您可能想先验证它。这样它将只更新req.body中可用的字段?听起来很简单:)谢谢!是的,但是你基本上是给你的用户自由添加他们喜欢的内容。您需要首先验证req.body
中的信息。因此它将更新,只更新req.body中可用的字段?听起来很简单:)谢谢!是的,但是你基本上是给你的用户自由添加他们喜欢的内容。您需要首先验证req.body
中的信息。