gpt4 book ai didi

javascript - Meteor:如果值等于 X,则更新对象 1,否则更新对象 2

转载 作者:行者123 更新时间:2023-12-03 07:36:39 25 4
gpt4 key购买 nike

我正在 Meteor 中构建一款多人游戏。
每个 game 集合都有一个 player1player2,它们是包含用户 ID 和一些游戏相关数据的对象。

问题:
我需要更新 game 上的游戏相关数据,但我不知道玩家是 player1 还是 player2

以下内容将更新player1,但我需要该函数是通用的,并且仅更新右侧玩家对象上的游戏相关数据。

我是否在架构上犯了错误,或者我是否缺少可以帮助我的 MongoDB 功能?

Meteor.methods({
changeHand: function(gameId, hand) {
Games.update(gameId, {
player1: {
_id: Meteor.userId(),
hand: hand
}
});
}
});

最佳答案

我不知道 Mongo 函数允许这种有条件更新。我推荐使用“查找然后更新”的 JavaScript 端逻辑:

Meteor.methods({
changeHand: function(gameId, hand){
var game = Games.findOne({_id: gameId});
if(game.player1._id===Meteor.userId()){
Games.update({_id: gameId}, {$set: {'player1.hand': hand}});
}else{
Games.update({_id: gameId}, {$set: {'player2.hand': hand}});
}
}
});

关于javascript - Meteor:如果值等于 X,则更新对象 1,否则更新对象 2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35583937/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com