MongoDB的选择会是什么这个的替代查询的替代流星客户
Polls.update({_id: id, "choices.option" : choice}, {$set : {"choices.$.vote_count" : updated_count}});
要在流星客户端运行。由于meteor
不再允许除id
之外的任何其他选择器。在这种情况下,这是一个问题,尤其是因为我不知道数组索引,我试图通过使用另一个变量来获取它。
MongoDB的选择会是什么这个的替代查询的替代流星客户
Polls.update({_id: id, "choices.option" : choice}, {$set : {"choices.$.vote_count" : updated_count}});
要在流星客户端运行。由于meteor
不再允许除id
之外的任何其他选择器。在这种情况下,这是一个问题,尤其是因为我不知道数组索引,我试图通过使用另一个变量来获取它。
可能有更好的办法,但你可以修改现有的选择数组,然后再次$set
。
var choices = Polls.findOne(id).choices;
_.each(choices, function(c) {
if (c.option === choice) {
c.vote_count = updated_count;
}
});
Polls.update(id, {$set: {choices: choices}});
从Meteor 0.7.1开始,您可以在客户端上执行位置更新,但是您必须将呼叫包装在流星方法中。这是因为流星不允许不信任代码的任何非ID选择1
确保文件上均可client
和server
,为具有客户端版本将模拟效果(ALA延迟补偿) 。
例如,
Meteor.method({
"poll.updateChoice": function(id, choice, updated_count){
Polls.update({_id: id, "choices.option" : choice},
{$set : {"choices.$.vote_count":updated_count}});
}
});
是啊,我真的不希望,虽然走这条路。但我可能必须像现在这样。 – user1952811
我最终走上了类似的路线,所以我会接受你的答案。 – user1952811