Mongodb c# 驱动程序 - 将 Id 复制到插入时的另一个字段

Mongodb c# driver - copy Id to another field on insert

我正在使用 .Net - mongodb monngodb 的 c# 驱动程序。插入文档时,我想将生成的 [BsonId] ObjectId Id 字段复制到文档中的另一个字段(复制值)

我可以 运行 插入,这将生成密钥,然后 运行 更新以将密钥复制到另一个字段,但这将使数据库处于 "soft" 状态一段时间(简短)时间段。

是否可以这样做 "atomically" 还是我使用 mongodb 错误?

如果您希望更新是原子的,您就不能真正做到这一点。

我建议您不要让驱动程序设置 Id,只需使用 ObjectId.GenerateNewId 自己创建并设置它,然后在将文档插入 MongoDB 之前复制它:

entity.Id = ObjectId.GenerateNewId();
entity.IdCopy = entity.Id;