gpt4 book ai didi

mongodb - 更新 MongoDB 记录是重写整个记录还是只重写更新的字段?

转载 作者:可可西里 更新时间:2023-11-01 09:46:03 26 4
gpt4 key购买 nike

我有一个 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 中更新记录中的特定字段会重写整个记录还是仅重写更新的字段? (假设所有这些字段都已编入索引)。

最佳答案

默认情况下,整个文档都会被重写。要指定更改的字段而不修改任何其他内容,请使用 $set运营商。

编辑: 对此答案的评论是正确的 - update modifiers 中的任何一个将导致只重写相关字段而不是整个文档。 “默认”是指没有使用特殊修饰符的情况(提供了普通文档)。

关于mongodb - 更新 MongoDB 记录是重写整个记录还是只重写更新的字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13483251/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com