2

こんにちは、データベースとしてmongodbを使用しています。私の質問は、1 つのドキュメントまたは多数のドキュメントに対してクエリを実行するときに、どうすればそれを確認できるかということです。例:

mongo.GetCollection("orders").Find(Query.EQ("OrderStatus", "unshiped")).ToList();

このリストにあるドキュメントがロックされていて、誰も編集できないことを確認する方法と、このレコードを使用してコードで何をしても、それらを真にループして保存すると、ロックが解除されるはずです

4

2 に答える 2

0

MongoDB は、単一のドキュメントに対するアトミック操作をサポートしています。MongoDB は、いくつかの理由により、従来のロックと複雑なトランザクションをサポートしていません。

  • まず、シャード環境では、分散ロックは高価で遅くなる可能性があります。Mongo DB の目標は、軽量で高速であることです。
  • 私たちはデッドロックの概念を嫌います。私たちは、このような驚きのないシンプルで予測可能なシステムにしたいと考えています。
  • Mongo DB がリアルタイムの問題でうまく機能することを望んでいます。大量のデータをロックする操作が実行される可能性がある場合、小規模で軽いクエリが長時間停止する可能性があります。

あなたの最善の策はlocked、ドキュメントにプロパティを追加し、そこから移動することだと思います。

于 2012-05-21T13:58:10.413 に答える
0

コレクションに isLocked フィールドを追加できます。更新する前に、作業を完了するためにロックおよびロック解除できます。より具体的なロック メカニズムが必要な場合は、LockedId フィールドに Guid を追加します。

于 2019-06-17T08:55:30.030 に答える