私は次のようにMongoDBコレクションを持っています:
comment_id (number)
comment_title (text)
score (number)
time_score (number)
final_score (number)
created_time (timestamp)
スコアは整数であり、通常、誰かがそのレコードに賛成または反対票を投じるたびに$inc1または-1を使用して更新されます。ただし、time_scoreは、タイムスタンプと現在の時刻、および数(1日が経過した)や数(1週間が経過した)などの他の要因に関連する関数を使用して更新されます.....など
したがって、dbで$incと$decを直接実行しますが、time_scoreの場合、dbからデータを取得して新しいスコアを計算し、書き戻します。私が心配しているのは、多くのユーザーがtime_scoreの計算中に「スコア」フィールドをインクリメントした場合、time_scoreをdbに書き込んだときに、スコアの最後の値が破損することです。
より明確にするために、Mongoでレコード内の特定のフィールドを更新すると、レコード全体が書き換えられますか、それとも更新されたフィールドのみが書き換えられますか?(これらすべてのフィールドにインデックスが付けられていると想定します)。