我是MongoDB的新手,想要有效地序列化我的对象。这意味着在更新对象时,我只想写入更改的字段。如果我的对象在列表中有子对象,我只想添加或删除更改的子对象。那是因为如果我有一篇包含1000条评论的帖子,我想避免在每次发布新帖子时序列化整个对象。
我找到的只是约定ignoreifempty,ignoreisdefault和shouldserializexyz模式。
是否可以编写像ignoreifnotchanged这样的约定(我跟踪我的对象中的脏字段)或者是否有更通用的shouldserializexyz,因为我不想为每个属性编写方法。
答案 0 :(得分:0)
您要查看的是具有update参数的Update方法,该参数指定您要更新的字段。
您可以使用“更新”构建器来构建更新参数值。请看:
Update.Set(name, value)
Update.Push(name, value)
(还有更多)。
您可以将Update方法链接在一起以一次更新多个字段。
目前没有内置的更改跟踪,因此您必须跟踪哪些字段已自行更改,并根据您对更改内容的了解构建更新参数。
还有一个与此相关的待处理JIRA功能请求。参见:
https://jira.mongodb.org/browse/CSHARP-237
如果您愿意,请对JIRA发表评论或投票。