本文介绍了Upserting在蒙戈DB和标识问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述 我必须同时upserting到蒙戈DB使用官方C#驱动程序有问题。 公共抽象类AggregateRoot { ///<总结> ///所有的MongoDB文档必须有一个ID,我们在这里声明, ///< /总结> 保护AggregateRoot() { n = ObjectId.GenerateNewId(); } [BsonId] 公众的ObjectId标识{搞定;组; } } 我的实体已经有了ID-S,但我不得不创建蒙戈特定ID为它工作,作为一个集合中的所有文件应该有一个。那么现在我收到我的系统的新实体将产生一个新的蒙戈Id和我得到的蒙戈不能更改文档老异常_id。有一些变通? 解决方案 Looks like you might be explicitly setting the Id value for both inserts and updates. That's fine for inserts, all new objects need an _id value, however for updates you're not allowed to change the value of _id on an existing document after it's created.Try not setting the Id value at all. If you don't specify a value before inserting, the driver uses built-in IdGenerator classes to generate a new _id value, so if it's an ObjectId type it'll use the ObjectIdGenerator. Then both your inserts and updates work fine. 这篇关于Upserting在蒙戈DB和标识问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持! 10-19 05:59