Meteor集合更新中的狩猎bug

Edw*_*ing 7 meteor

我正在尝试Meteor的排行榜示例,并且在尝试随机化玩家的分数时遇到了一个错误.

我遇到的例外是 Exception while simulating the effect of invoking '/players/update' undefined

相关代码如下所示:

'click input.randomize_scores': function () {
  Players.find().forEach(function (player) {
    random_score = Math.floor(Math.random()*10)*5;
    Players.update(player, {$set: {score: random_score}})
  });
}
Run Code Online (Sandbox Code Playgroud)

完整的leaderboard.js内容在这里

我觉得我在做一些非常愚蠢的事情.我真的很感激指针.

deb*_*lis 15

update()的第一个参数需要是文档ID或完整的Mongo选择器.您正在传递完整的播放器文档.试试这个:

Players.update(player._id, {$set: {score: random_score}});
Run Code Online (Sandbox Code Playgroud)

这是简写​​:

Players.update({_id: player._id}, {$set: {score: random_score}});
Run Code Online (Sandbox Code Playgroud)