Cor*_*ndt 5 .net c# mongodb nosql mongodb-.net-driver
我正在使用 .Net - mongodb c# monngodb 驱动程序。插入文档时,我想将生成的[BsonId] ObjectId Id字段复制到文档中的另一个字段(复制值)
我可以运行 Insert,它将生成密钥,然后运行 update 将密钥复制到另一个字段,但这将使数据库在(短暂的)一段时间内处于“软”状态。
是否可以“原子地”执行此操作,或者我使用 mongodb 是否错误?
如果您希望更新是原子的,那么您实际上不能这样做。
我建议您不要让驱动程序设置 Id,而是自己创建并设置它ObjectId.GenerateNewId,然后在将文档插入 MongoDB 之前复制它:
entity.Id = ObjectId.GenerateNewId();
entity.IdCopy = entity.Id;
Run Code Online (Sandbox Code Playgroud)