0

私は動作する次のコードを持っています。しかし、もっと動的にしたいと思います。「mPlayers.0」の代わりに「mPlayers.counter」にして、単一のクエリを持つことができるようにしたいと思います。それほど難しいことではないようですが、私はそれを機能させることができません。

どんな助けでも大歓迎です!

if(counter === 0) {
  models.GameBoard.findOneAndUpdate({_id: game._id}, {$set: {"mPlayers.0": updatedPlayer}}).exec();
} else if(counter === 1) {
  models.GameBoard.findOneAndUpdate({_id: game._id}, {$set: {"mPlayers.1": updatedPlayer}}).exec();
} else if(counter === 2) {
  models.GameBoard.findOneAndUpdate({_id: game._id}, {$set: {"mPlayers.2": updatedPlayer}}).exec();
} else if(counter === 3) {
  models.GameBoard.findOneAndUpdate({_id: game._id}, {$set: {"mPlayers.3": updatedPlayer}}).exec();
}
4

1 に答える 1

0

これが欲しいかのように見えます:

var value = {};
value['mPlayers.' + counter] = updatedPlayer;
models.GameBoard.findOneAndUpdate({_id: game._id}, {$set: value}).exec();
于 2013-03-17T12:11:45.687 に答える