2016-08-31 53 views
0

我有:的MongoDB/javascript变量查询

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 

,并得到nameoption中使用:

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

回答

1

很难说,不看代码的其余部分,但看起来像你只需要改变

thisminion.nameoption 

thisminion[nameoption] 

由于原来的行正试图访问thisminion的财产被称为 'nameoption'。使用方括号将访问名称与nameoption的值相同的属性。

至于蒙戈部分:因为你不能使用一个变量作为左边的值,你需要做额外的工作一点点:

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

+0

但thisminion.attack是正确的。我需要它与变量一起工作。 – maria

+0

我在重新阅读您的问题后更新了我的答案。对不起。 – Maksym