我有一个 MongoDB 集合,如下所示:
comment_id (number)
comment_title (text)
score (number)
time_score (number)
final_score (number)
created_time (timestamp)
分数是和整数,当有人对该记录投赞成票或反对票时,通常使用 $inc 1 或 -1 进行更新。但是 time_score 使用相对于时间戳和当前时间的函数以及其他因素进行更新,例如多少(整天过去)和多少(整周过去).....等
所以我直接在 db 上执行 $inc 和 $dec,但是对于 time_score,我从 db 中检索数据计算新分数并将其写回。我担心的是,如果许多用户在我计算 time_score 期间增加了“score”字段,那么当我将 time_score 写入 db 时,它会破坏最后一个 score 值。
更清楚地说,更新 Mongo 记录中的特定字段会重写整个记录还是只重写更新的字段?(假设所有这些字段都被索引)。