我在会话中都有游戏_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
}
});
}
});
答案 0 :(得分:1)
或许这样......
Games.update(
{ board : hex_board(7), "players.id": 0 },
{
"$addToSet": { "players.$.hexIds": "foo" }
}
)
你可以根据需要变化