Mongoose更新字符串变量不起作用?

时间:2016-04-05 06:14:05

标签: javascript node.js mongodb mongoose

我正在尝试进行简单的更新,但是当我为要更改的字段使用变量时它不起作用。

这有效

var update = {"$inc": {"racesWon" : 1}}
User.findOneAndUpdate({
    username: req.body.username
}, update, {}, callback)

现在我有一个像这样的开关

var resultToUpdate = ""
switch (req.body.result) {
    case 1:
        resultToUpdate = "racesWon";
        break;
    case 2:
        resultToUpdate = "racesSecond";
        break;
    case 3:
        resultToUpdate = "racesThird";
        break;
}

我想使用resultToUpdate变量来更改更新内容,但它不起作用。我整晚都在上班,我不知道出了什么问题

var update = {"$inc": { resultToUpdate : 1}}
User.findOneAndUpdate({
    username: req.body.username
}, update, {}, callback)

编辑:它与标记的问题不同。问题是 - 为什么变量不能在mongoose更新中运行?是否必须按字面意思引用""而不是一个变量?

解决了这个问题。

switch (req.body.result) {
    case 1:
         update = {"$inc": {racesWon: 1}};
         break;
    case 2:
         update = {"$inc": {racesSecond: 1}};
         break;
    case 3:
         update = {"$inc": {racesThird: 1}};
         break;
}

编辑:旧方式不起作用,因为 - 您无法使用动态'初始化对象密钥。

0 个答案:

没有答案