sql >> データベース >  >> NoSQL >> MongoDB

mongoDB/mongooseと並行してドキュメントを読み書きする方法

    はい、addItemが進行中であることを示すために、houseModelをより適切にロックする必要があります。

    問題は、複数のリクエストがfindByIdを呼び出して、samehouse.items.lengthを確認し、それぞれがその(古い)スナップショットに基づいて、もう1つのアイテムを追加しても問題ないと判断できることです。アトミック性のnodejs境界はコールバックです。非同期呼び出しとそのコールバックの間で、他のリクエストを実行できます。

    簡単な解決策の1つは、家の中のアイテムの数だけでなく、意図されたaddItemの数も追跡することです。 addItemに入るときに、「さらに追加したい」カウントを増やして、それをテストします。



    1. 空の配列を含む配列エントリを削除します

    2. Facebook-JWTを使用したパスポート

    3. ネストされた配列を更新する方法

    4. MongoError:アトラスの管理者に対してクエリを実行できません