2016-01-10 58 views
0

我正在尝试更新数组内的对象。这里是我的结构:基于索引更新数组流星

"_id": "ubtQP9EjmxhXS5z98", 
"name": "My Data", 
"desc": "What songs should I play at my wedding?", 
"private": false, 
"suggestions": [ 
    { 
    "name": "Vote 1", 
    "link": "http://www.website.com/", 
    "votes": 0 
    }, 
    { 
    "name": "Vote 2", 
    "votes": 0 
    } 
], 
"author": "tovd9Win3C3fntgyR", 
"createdAt": "2016-01-10T08:36:37.014Z" 

这里是我的更新代码:

Meteor.methods({ 
    voteup: function(itemIndex, userId){ 
    Polls.update({"_id": "ubtQP9EjmxhXS5z98"}, { 
     "$inc": {"suggestions."+itemIndex+".votes": 1} 
    }); 
    } 
}); 

这是行不通的。它只是使我的应用程序崩溃。

回答

1

你需要来动态建立这样的查询:

Meteor.methods({ 
    voteup: function(itemIndex, userId) { 
    var update = {}; 
    update["suggestions."+itemIndex+".votes"] = 1; 
    Polls.update({"_id": "ubtQP9EjmxhXS5z98"}, { 
     "$inc": update 
    }); 
    } 
});