草庐IT

Upserting

全部标签

c# - Mongo DB中的Upserting和Id问题

我在使用官方C#驱动程序升级到mongodb时遇到问题。publicabstractclassAggregateRoot{//////AllmongoDbdocumentsmusthaveanid,wespecifyithere///protectedAggregateRoot(){Id=ObjectId.GenerateNewId();}[BsonId]publicObjectIdId{get;set;}}我的实体已经有id-s,但我必须创建mongo特定的Id才能工作,因为集合中的所有文档都应该有一个。现在我在我的系统中收到一个新实体,生成了一个新的MongoId,我得到mongo

c# - Mongo DB中的Upserting和Id问题

我在使用官方C#驱动程序升级到mongodb时遇到问题。publicabstractclassAggregateRoot{//////AllmongoDbdocumentsmusthaveanid,wespecifyithere///protectedAggregateRoot(){Id=ObjectId.GenerateNewId();}[BsonId]publicObjectIdId{get;set;}}我的实体已经有id-s,但我必须创建mongo特定的Id才能工作,因为集合中的所有文档都应该有一个。现在我在我的系统中收到一个新实体,生成了一个新的MongoId,我得到mongo

mongodb不可能(?)E11000重复键错误dup key当upserting

我的理解是,在单个文档上使用upsert:true进行更新是一个原子操作,因此当集合没有唯一索引字段时,这绝不会导致重复键错误,尤其是在主_id键上:Order.update({_id:order._id},query,{upsert:true},cb)//withmongoose但这出现在mongod.log中:2015-03-27T09:39:10.349-0400IWRITE[conn258236]updatexyz.ordersquery:{_id:"6353f880-c6a7-4260-809f-98e0af27b9a2"}update:{$set:{...}keyUpdat

mongodb不可能(?)E11000重复键错误dup key当upserting

我的理解是,在单个文档上使用upsert:true进行更新是一个原子操作,因此当集合没有唯一索引字段时,这绝不会导致重复键错误,尤其是在主_id键上:Order.update({_id:order._id},query,{upsert:true},cb)//withmongoose但这出现在mongod.log中:2015-03-27T09:39:10.349-0400IWRITE[conn258236]updatexyz.ordersquery:{_id:"6353f880-c6a7-4260-809f-98e0af27b9a2"}update:{$set:{...}keyUpdat