0

私は現在、node.js+mongodbバックエンドを使用したマルチプレイヤーカードゲームを開発しています。ユーザーがゲームに参加できるようにしたいので、キュー関数を実装しています。このキュー関数では、mongodbから、開始されておらず、ロックされておらず、キューにプレーヤーが含まれていない単一のゲームを取得できるようにしたいと考えています。

私のmongodbゲームドキュメントの例:

{
"_id": {
    "$oid": "512cccf9e4b09000a6f1f079"
},
"mChanceTaken": false,
"mCurrentPlayer": 0,
"mCurrentPlayerName": "-",
"mDeck": [
    {
        "mValue": 13,
        "mSuit": "HEARTS"
    },
    {
        "mValue": 13,
        "mSuit": "SPADES"
    },
    {
        "mValue": 3,
        "mSuit": "SPADES"
    },
    {
        "mValue": 10,
        "mSuit": "SPADES"
    },
    {
        "mValue": 11,
        "mSuit": "CLUBS"
    },
    {
        "mValue": 3,
        "mSuit": "HEARTS"
    },
    {
        "mValue": 7,
        "mSuit": "DIAMONDS"
    },
    {
        "mValue": 9,
        "mSuit": "SPADES"
    },
    {
        "mValue": 8,
        "mSuit": "HEARTS"
    }
],
"mFinished": false,
"mLocked": false,
"mNumberOfPlayers": 4,
"mPlayers": [
    {
        "mPlayerId": "512bd9a1e4b09000a6f1f073",
        "mUsername": "user2",
        "mPosition": 0,
        "mSwitching": true,
        "mFaceUp": [],
        "mFaceDown": [],
        "mHand": []
    },
    {
        "mPlayerId": "512bcb3be4b09000a6f1f06b",
        "mUsername": "user1",
        "mPosition": 0,
        "mSwitching": true,
        "mFaceUp": [],
        "mFaceDown": [],
        "mHand": []
    }
],
"mRoundLength": 60,
"mStarted": false,
"mSwitching": false

}

私の現在のクエリは次のようになります。

GameBoard.findOneAndUpdate({mStarted: false, mLocked: false, mPlayers: {$not: {mPlayerId: player.mPlayerId}}}, {mLocked: true}, function (err, gameBoard) {

$ not演算子を使用する必要があると思いますが、ユースケースでの使用方法がわかりません。誰か助けてください!

4

1 に答える 1

3

$ notは別の演算子式と組み合わせてのみ使用されるため、 $ne演算子を試してください。

于 2013-03-15T22:37:48.783 に答える