流星:如果值等于 X,则更新对象 1,否则更新对象 2
Meteor: Update object1 if value equals X, else update object2
我正在Meteor中构建一个多人游戏。
每个game
集合都有一个player1
和player2
,它们是包含用户 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}});
}
}
});
相关文章:
- 如何在 Firebase 的 Angular-Fire 中使用 $save() 来更新对象属性值
- Expressjs&集合中的MongoDB更新对象's数组
- Physijs更新对象质量
- 如何使用setAttribute更新对象中的一个值
- 在分析中创建或更新对象
- 从knockout.js中的下拉列表更新对象
- Grails richui自动完成将对象传递给函数或更新对象ID
- 我正在使用 $scope.$apply 在 http 调用后更新对象数组.谁能告诉我正确的方法
- 如何使用 AngularJS 根据选择更改更新对象数组
- 从新对象的属性更新对象的属性,但前提是新对象上的属性不是未定义的
- 角度.js从NG重复更新对象数据
- 删除 JavaScript 中的重复代码;更新对象传递到函数中
- javascript:通过递增 objectKeys 值来更新对象
- 根据输入更新对象数组
- 想要在回调中更新对象,给出正确的日志,但全局对象未更新
- 流星:如果值等于 X,则更新对象 1,否则更新对象 2
- 如何在 Javascript 中更新对象数组中每个对象的值
- 嵌套的 ng-repeat 不会更新对象
- 使用从 MongoDB 获取的新数据更新对象属性
- 按 $parent.$index 和$index更新对象$scope项