私は明らかに売り切れ前に売るために一定量の衣服を持っているオンライン小売店を建設しています。服やその他の商品が急激に売り切れてトラフィックが非常に高くなることが想定される場合は、MongoDBを使用して在庫を追跡したかったのです。しかし、これはMongoDbにとって最良のケースです。MongoDBユースケースの在庫
MongoDBは1つのドキュメントに対して複数の更新をどのように処理しますか?
私の場合、10のTシャツがあり、11人がそれを購入するためにsmaeページに来ると言う。今、それを購入すると、私は在庫が利用可能であるかどうかをチェックし、カウントを減らす更新を実行します。 mongoDBは操作をキューに入れて、前のユーザーからの更新が行われてからカウントが呼び出されるようにしますか?
私はちょうどあなたの質問を読んで、これは実際にあなたの質問に答えないかもしれません。私の悪い。 – atbebtg
'findAndModify'が動作すると思います。あなたは '{available:{$ gt:0}}'のようなものでインベントリ項目を問い合わせ、 '{available:{$ inc:-1}} 'でそれを修正したいとします。 'findAndModify'全体がアトミックなので、使用可能なカウントが0より大きいインベントリ項目(名前、IDなど)が存在しない場合、失敗します(ユーザに売り切れであることを通知できます)。それ以外の場合は、項目をユーザーに「チェックアウト」するために利用可能な数をアトミックに変更します。また、このトピックに関する多くのアドバイスがあるhttp://kylebanker.com/blog/2010/06/07/mongodb-inventory-transactions/を参照してください。 – dcrosta
@drcostaこのリンクをありがとうございます! – atbebtg