更新後/更新前に更新されたコレクションを取得する方法はありますか? 私が考えることができるのはかなり重いです。
- フィルターを使用して更新したいものを取得します。
- 以前の状態で取得したすべてを更新します
- もう一度 ID ですべて取得し、何が更新されたかを確認します。
なぜこれが必要なのですか?
データベースから常にデータをフェッチするサービスがあります。ステータスに応じてアトミックに取得したい。
たとえば、フィールド Status を含むドキュメントのステータスが 1 の場合、サービスでそれをフェッチし、プロセスでアトミックに 2 に変更する必要があるため、他のすべてのコンポーネントが何らかの理由で私をオーバーライドすることはありません。
更新は次のようになります。
var filter = Builders<ServiceModel>.Filter.And(
Builders<ServiceModel>.Filter.Gt(t => t.EndDate, dueDate),
Builders<ServiceModel>.Filter.Eq(t => t.Status, Enums.ServiceHandleStatus.Registered));
var update = Builders<ServiceModel>.Update.Set(t => t.Status, Enums.ServiceHandleStatus.InProcess);
var options = new UpdateOptions() { IsUpsert = false };
using (var result = this.manager.Trainings.UpdateManyAsync(filter, update, options))
方向性は?
ティア。