-1

Mongo のドキュメントでは、他の操作をブロックしないようにロックを生成するクエリについて説明しています。Mongo は、読み取り結果を変更する読み取りから書き込みへのロックを譲りますか?

ドキュメントを持って{x:1}, {x:2}, {x:2}, {x:1}いて、読んでいるとしましょうfind({x:2})。4 番目のドキュメントがワーキング セットにないと仮定すると、Mongo ページ フォールトが発生し、ロックが に渡されます。update({x:1}, {x:2}, {multi: true})これによりロックが完了し、ロックが に返されますfind。検索には 4 番目のドキュメントが含まれますが、最初のドキュメントは省略されます。Monogo はこのように機能しますか?

4

1 に答える 1

2

MongoDB では、クエリが分離されているという保証はありません。実際、複数のドキュメントにわたって、同じ時点を見ているという保証はありません。

あなたが説明することは絶対に起こる可能性があり、実際に起こります。同じことが、多数のドキュメントをバッチでフェッチする複数ドキュメント クエリにも当てはまります (カーソルを使用する場合)。次のバッチで getmore を発行するとき、データの状態は、結果の前のバッチを取得したときと同じであるとは限りません。

于 2014-01-07T19:09:06.167 に答える