在 Meteor 和 mongodb 中处理嵌套字典

Handling nested dictionaries in Meteor and mongodb

我有以下结构:

{
  game_number: 101,
  type: 1,
  players: ["x1","x2","x3"],
  scores: [
            { "x1" : 0 },
            { "x2" : 1 }
          ]
}

有一个 游戏,其中有 3 玩家 正在玩。玩家 x1x2 已经完成并获得了最终分数。玩家 x3 尚未完成。我的想法是检查此结构中的 scores 并查看谁已经完成,这样我就可以在 Meteor 中使用类似的东西:

{{#if playerHasFinished player}}
  <div class="result">
    ...
  </div>
{{else}}
  <div class="waiting">
    ...
  </div>
{{/if}}

我不确定我的数据结构是否正确,所以那里可能是我的"functional"错误,但无论如何应该可以做到,对吧?我将如何访问该数据?

如果您要求实现 playerHasFinished,这里有一个示例:

Template.myTemplate.helpers({
  playerHasFinished: function(player) {
    // get the current game - modify as appropriate
    var game = Games.findOne(Session.get('curentGame'));

    // ['x1', 'x2']
    var finishedPlayers = _.keys(scores);

    // this assumes player is a string like 'x3'
    return _.contains(finishedPlayers, player);
  }
});