gpt4 book ai didi

node.js - Mongoose 更新多个条件并回退

转载 作者:太空宇宙 更新时间:2023-11-04 00:29:54 24 4
gpt4 key购买 nike

我只想有一个端点可以做两件事,以使前端工作变得简单。该端点可以更新年龄和年级,其中之一可以是可选的。如果年龄或年级不存在,下面的代码将失败。如何解决这个问题?

//update age and grade
app.put('/user', function(req, res) {
var date = req.body.date,
userId = req.body.userId,
age = req.body.age,
grade = req.body.grade;

Trucks.update({'date':date, 'id': userId}, {'$set': {
'userData.$.age': age,
'userData.$.grade': grade
}}, function(err, response){
if (err) {
console.log(err)
return res.status(500).json({
error: 'Error update update user\'s data'
});
}else{
res.send(response);
}
})
});

我可以在更新对象中添加条件吗?

{
age ? "'userData.$.age': age", : ''
grade ? "'userData.$.grade' : grade" : ''
}

嗯,不这么认为..

最佳答案

例如,您可以在发送到 mongoose 之前准备查询。

//update age and grade
app.put('/user', function(req, res) {
var date = req.body.date,
userId = req.body.userId,
age = req.body.age,
grade = req.body.grade;

var query = {};

if(age){
query['userData.$.age']= age;
}

if(grade){
query['userData.$.grade']= grade;
}

Trucks.update({'date':date, 'id': userId}, {'$set': query}, function(err, response){
if (err) {
console.log(err)
return res.status(500).json({
error: 'Error update update user\'s data'
});
}else{
res.send(response);
}
})
});

关于node.js - Mongoose 更新多个条件并回退,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41366308/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com