在下面的代码中,我想更新辅助电话号码只有从网络表格传递10位数字,否则我想在插入操作期间使用已插入辅助电话号码的电话号码。
是否可以帮助我纠正以下代码以实现条件数据库更新?
hotelModel.findOneAndUpdate({ "name": req.body['hotelName'], "contact.postalCode": parseInt(req.body['postalCode']) },
{
$set: {
"contact.primaryContactNumber" : parseInt(req.body['primaryContactNumber']),
if (req.body['secondaryContactNumber'].toString().trim().length == 10) {
"hotelSchema.contact.secondaryContactNumber: : parseInt(req.body['secondaryContactNumber'])
}else{
"contact.primaryContactNumber" : //How to add existing Secondary phone number?
}
}
}, { new: true },
function (err, doc) {}
答案 0 :(得分:0)
如果我理解正确,您希望在用户提供有效电话号码时更新contact.secondaryContactNumber
,否则您希望contact.secondaryContactNumber
保持不变。如果是这样,只需删除else
子句。你不需要明确告诉它做某事,因为默认情况下它什么都不做,这就是你想要的。
hotelModel.findOneAndUpdate({ "name": req.body['hotelName'], "contact.postalCode": parseInt(req.body['postalCode']) },
{
$set: {
"contact.primaryContactNumber" : parseInt(req.body['primaryContactNumber']),
if (req.body['secondaryContactNumber'].toString().trim().length == 10) {
"hotelSchema.contact.secondaryContactNumber: : parseInt(req.body['secondaryContactNumber'])
}
}
}, { new: true },
function (err, doc) {}