Строковая интерполяция внутри запроса mon goose - PullRequest
0 голосов
/ 16 марта 2020

Мне нужно передать значение по ссылке внутри запроса mon goose. Я должен обновить вложенный объект в моем документе Mongodb. Сейчас я решил использовать жесткий код, но в конечном итоге мне нужно соответствующим образом обновить запрос на обновление. Вот мой код:

function update(obj, newBill, category) {
    return new Promise(function (resolve, reject) {

        let qry;

        switch (category) {
            case 'internet':
                qry = User.findOneAndUpdate({username: obj.username}, {$push: {"data.internet": newBill}});
                break;
            case 'electricity':
                qry = User.findOneAndUpdate({username: obj.username}, {$push: {"data.electricity": newBill}});
                break;
            case 'water':
                qry = User.findOneAndUpdate({username: obj.username}, {$push: {"data.water": newBill}});
                break;
            case 'gas':
                qry = User.findOneAndUpdate({username: obj.username}, {$push: {"data.gas": newBill}});
                break;
            default:

                break;
        }

        // let qry = User.findOneAndUpdate({username: obj.username}, {$push:{`data.${category}`:newBill}});

        qry.exec(function (err, user) {

            if (err) {
                console.log(err)
                return reject({err: 404})
            } else {
                console.log(user)
                return resolve(JSON.stringify({code: 202, id: user._id}))
            }
        })

    });
}


Мой код c, который будет обновлен

{"_id":{"$oid":"5e6ce0d25484e00d4dabc4cf"},"firstName":"yamin","lastName":"huzaifa","password":"admin1","username":"huz12","data":{"internet":[{"category":"internet","month":"Jan","year":{"$numberInt":"2019"},"amount":{"$numberInt":"70"}},{"test":"234"}],"electricity":[[{"month":"Jan","year":{"$numberInt":"2019"},"amount":{"$numberInt":"70"}}]]},"__v":{"$numberInt":"0"}}

1 Ответ

0 голосов
/ 16 марта 2020

выглядит просто как синтаксическая ошибка, просто добавьте фигурные скобки следующим образом:

[`data.${category}`]

let qry = User.findOneAndUpdate({username: obj.username}, {$push:{[`data.${category}`]:newBill}});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...