我正在与一个MongoDB数据库进行通信,该数据库由另一个使用我的应用程序不使用或不关心的字段的应用程序共享。
在我的代码中,我使用Update.Replace
来更新对象。问题是它用我的POCO对象替换了数据库中的整个文档,导致其他应用程序使用的属性被删除。
我可以Update.Set
,但我必须使用很多次。 Update.Replace
非常方便,因为它会自动将(通过反射)POCO对象转换为BsonDocument
。
如何自动生成Update.Set
,以便我不必为每个成员调用它?
答案 0 :(得分:1)
结果我必须进行额外的网络调用以获取整个文档,然后进行替换。
我拿现有文件做...
_caseCollection.Update(Query<Case>.EQ(x => x.Id, caseItem.Id), Update.Replace(existingDocument.Merge(caseItem.ToBsonDocument(), true)));
这将保留其他应用程序正在使用的任何字段。