0

さまざまなアイテムを表す一連のドキュメントを含むコレクションがあります。時々、アイテムのプロパティを更新する必要がありますが、更新には時間がかかります。プロパティが更新されると、アイテムは変更されたときの新しいタイムスタンプを取得します。一度に 1 つずつ更新を実行すると、問題はありません。ただし、複数の更新プロセスを同時に実行したい場合、1 つのプロセスがアイテムの更新を開始する可能性がありますが、次のプロセスは依然としてアイテムを更新が必要であると見なし、同様に更新を開始します。

解決策の 1 つは、アイテムが更新のために取得されたらすぐにマークを付けること (findAndModify) ですが、現在更新中のアイテムを追跡するためだけに、すべてのドキュメントに余分なフィールド全体を追加するのは無駄に思えます。

これは非常に一般的な問題です。たぶん、それに対処するために存在する組み込み関数がいくつかありますか?そうでない場合、それに対処するための標準的な確立された方法はありますか?

これが以前に対処されていた場合は申し訳ありませんが、この情報を見つけるのに苦労しています. 間違った用語を使用しているだけかもしれません。

4

1 に答える 1

1

db.currentOp()を使用して、更新がすでに進行中かどうかを確認できます。

于 2012-12-07T20:13:22.357 に答える