我正在使用.Net - mongodb c#driver for monngodb。插入文档时,我想将生成的[BsonId] ObjectId Id
字段复制到文档中的另一个字段(复制值)
我可以运行Insert,它将生成密钥,然后运行update以将密钥复制到另一个字段,但这会将数据库保留在" soft" (短暂的)一段时间。
是否有可能做到这一点"原子地"还是我使用mongodb错了?
答案 0 :(得分:3)
如果您希望更新是原子的,那么您无法真正做到这一点。
我建议你做的不是让驱动程序设置Id,而是用ObjectId.GenerateNewId
自己创建并设置它,然后在将文档插入MongoDB之前复制它:
entity.Id = ObjectId.GenerateNewId();
entity.IdCopy = entity.Id;