我在会话变量中都有游戏_id和玩家ID
Games.insert({
board : hex_board(7),
players : [{id : 0, hexIds : []}, {id : 1, hexIds : []}],
});
到目前为止,我一直坚持:
Games.update(Session.get("game"), {$addToSet : {players : ""}});
我不知道如何进一步细化播放器列表中使用的元素,但条件在
Session.get("activePlayer")
中。当密钥被硬编码为0或1时几乎可以工作,但我并没有使其依赖于activePlayer var
Games.update(Session.get("game"), {
$addToSet : {
"players." + Session.get("activePlayer") + ".hexIds" : Session.get("selected_hex")
}
});
作为方法回答
Meteor.methods({
addHexIds : function (hexIds, player, game) {
Games.update({_id:game, "players.id" : player}, {
$addToSet : {
"players.$.hexIds" : hexIds
}
});
}
});
最佳答案
也许像这样...
Games.update(
{ board : hex_board(7), "players.id": 0 },
{
"$addToSet": { "players.$.hexIds": "foo" }
}
)
您可以根据需要变动