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

MongoDBは同時更新をどのように処理しますか?

    MongoDBは、プロセス全体の書き込みロックを使用して、一度に1つの書き込み操作(更新/挿入/削除)のみを実行できることを保証しました。このように、書き込みの同時実行は単に許可されていないため、同時実行の問題を自動的に解決します。

    4つのスレッドが更新操作を試みると、そのうちの1つが書き込みロックを取得し、更新を実行してロックを解放します。その後、残りの3つのうちの1つがロックを取得し、更新などを行います。

    並行性は、操作を単一の書き込み操作でラップできない場合にのみ機能します。最も一般的なユースケース(ドキュメントを検索し、それを更新して、新しいバージョンをアトミックに取得する)の場合、MongoDBはまさにそれを行う「findAndModify」コマンドを提供することに注意してください:http://www.mongodb.org/display/DOCS/findAndModify+Command

    更新:最近のロックはよりきめ細かくなっています。



    1. ClusterControlが自動データベースリカバリとフェイルオーバーを実行する方法

    2. 春のウェブフラックスと春のデータリアクティブにページネーションを実装する方法はありますか

    3. mongoコンソールでObjectIdを使用してオブジェクトを検索するにはどうすればよいですか?

    4. 公式のc#ドライバーを使用してMongoDBのUpdate.Setを使用して、複数のフィールドをどのように更新しますか?