Javascript meteor客户端中mongodb选择器的替代方案

Javascript meteor客户端中mongodb选择器的替代方案,javascript,mongodb,meteor,Javascript,Mongodb,Meteor,除了此查询,还有什么替代方案 Polls.update({u id:id,“choices.option”:choice},{$set:{“choices.$.vote\u count”:updated\u count}) 在meteor客户端中运行。因为meteor不再允许除id之外的任何其他选择器。在这种情况下,这是一个问题,特别是因为我不知道数组索引,我正试图使用另一个变量来获取它。可能有更好的方法,但您可以修改现有的choices数组,然后再次修改它 var choices = Poll

除了此查询,还有什么替代方案

Polls.update({u id:id,“choices.option”:choice},{$set:{“choices.$.vote\u count”:updated\u count})


在meteor客户端中运行。因为
meteor
不再允许除
id
之外的任何其他选择器。在这种情况下,这是一个问题,特别是因为我不知道数组索引,我正试图使用另一个变量来获取它。

可能有更好的方法,但您可以修改现有的choices数组,然后再次修改它

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}});

可能有更好的方法,但您可以修改现有的choices数组,然后再次修改它

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开始,您可以在客户机上执行位置更新,但是必须用Meteor方法包装调用。这是因为Meteor不允许在不受信任的代码中使用任何非id选择器

确保该文件在
客户端
服务器
上都可用,因为客户端版本将模拟效果(ala延迟补偿)

例如


从Meteor 0.7.1开始,您可以在客户机上执行位置更新,但是必须用Meteor方法包装调用。这是因为Meteor不允许在不受信任的代码中使用任何非id选择器

确保该文件在
客户端
服务器
上都可用,因为客户端版本将模拟效果(ala延迟补偿)

例如


是的,不过我真的不想走这条路。但我可能不得不这么做。我最终选择了一条类似的路线,所以我接受你的答案。是的,我真的不想走这条路线。但我可能不得不这么做。我最终选择了一条类似的路线,所以我会接受你的答案。