【问题标题】:mongodb / javascript variable in query查询中的mongodb / javascript变量
【发布时间】:2016-09-01 02:15:37
【问题描述】:

我有:

var optiontable = {1: 'attack', 2: 'defence', 3: 'intelligence'};
    var option = 1;
    var minion = minions[thisminion]; // get correct, works.
    console.log(optiontable[option]); // would output "attack"
    var nameoption = optiontable[option];
var increasement = 8;

我将如何根据以下情况获得 minion.attack:

thisminion.nameoption  // this wont work when it should display the result of thisminion.attack

并获取要使用的名称选项:

      minions.update({
                    _id: thisminion._id,
                    userid: playerid
                }, {$inc: {nameoption: increasement}})

【问题讨论】:

    标签: javascript mongodb


    【解决方案1】:

    不看剩下的代码很难说,但看起来你只需要改变

    thisminion.nameoption
    

    thisminion[nameoption]
    

    由于您的原始行试图访问 thisminion 的名为“nameoption”的属性。使用方括号将访问名称与 nameoption 的值相同的属性。

    至于 mongo 部分:由于不能使用变量作为左值,因此需要做一些额外的工作:

    var updateObj = {};
    updateObj[nameoption] = increasement;
    

    那么你可以这样做:

     minions.update({
                        _id: thisminion._id,
                        userid: playerid
                    }, {$inc: updateObj})
    

    类似问题:

    How to set mongo field from variable

    Using variables in MongoDB update statement

    【讨论】:

    • 但是 thisminion.attack 是正确的。我需要它来处理变量。
    • 我在重新阅读您的问题后更新了我的答案。很抱歉。
    猜你喜欢
    • 2017-04-26
    • 1970-01-01
    • 2018-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-11
    • 1970-01-01
    相关资源
    最近更新 更多