如何在更新mongodb时添加条件

时间:2017-10-01 01:21:03

标签: javascript node.js mongodb mongoose

在下面的代码中,我想更新辅助电话号码只有从网络表格传递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) {}

1 个答案:

答案 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) {}