4

我正在与另一个应用程序共享的 MongoDB 数据库进行通信,该应用程序使用我的应用程序不使用或不关心的某些字段。

在我的代码中,我使用Update.Replace更新对象。问题是它将数据库中的整个文档替换为我的 POCO 对象中的文档,导致其他应用程序使用的属性被删除。

我可以这样做Update.Set,但我必须多次使用。Update.Replace非常方便,因为它会自动(通过反射)将 POCO 对象转换为BsonDocument.

如何自动生成一个Update.Set,这样我就不必为每个成员调用它?

4

1 回答 1

1

结果我必须进行额外的网络调用才能获取整个文档,然后进行替换。

我拿了现有的文件,然后……

_caseCollection.Update(Query<Case>.EQ(x => x.Id, caseItem.Id), Update.Replace(existingDocument.Merge(caseItem.ToBsonDocument(), true)));

这将保留其他应用程序正在使用的任何字段。

于 2013-10-15T15:52:27.640 回答