处理 Meteor 和 mongodb 中的嵌套字典

Handling nested dictionaries in Meteor and mongodb

本文关键字:嵌套 字典 mongodb Meteor 处理      更新时间:2023-09-26

我有以下结构:

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

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

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

不确定我是否正确构建了数据,所以也许存在我的"功能"错误,但无论如何都应该可以做到,对吧?我将如何访问这些数据?

如果你要求实现 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);
  }
});