【问题标题】:Serialization of only changed members仅对更改的成员进行序列化
【发布时间】:2013-01-13 17:26:45
【问题描述】:

我是 MongoDB 新手,想有效地序列化我的对象。这意味着在更新对象时,我只想编写更改的字段。如果我的对象在列表中有子对象,我只想添加或删除更改的子对象。那是因为如果我有一个包含 1000 cmets 的帖子,我希望避免在每次有新帖子出现时序列化整个对象。

我发现的只是约定 ignoreifempty、ignoreisdefault 和 shouldserializexyz 模式。

是否可以编写类似 ignoreifnotchanged 的​​约定(我跟踪对象中的脏字段)或者是否有更通用的 shouldserializexyz 因为我不想为每个属性编写方法。

【问题讨论】:

    标签: c# mongodb serialization convention


    【解决方案1】:

    您要查看的是带有更新参数的 Update 方法,该参数指定您要更新的字段。

    您可以使用更新构建器来构建更新参数值。调查:

    Update.Set(name, value)
    Update.Push(name, value)
    

    (还有更多)。

    您可以将 Update 方法链接在一起以一次更新多个字段。

    目前没有内置的更改跟踪,因此您必须自己跟踪哪些字段发生了更改,并根据您对更改内容的了解构建更新参数。

    还有一个与此相关的未决 JIRA 功能请求。见:

    https://jira.mongodb.org/browse/CSHARP-237

    如果需要,请对 JIRA 发表评论或投票。

    【讨论】:

      猜你喜欢
      • 2013-07-14
      • 1970-01-01
      • 2014-06-15
      • 2018-11-09
      • 2012-01-30
      • 2013-04-08
      • 2021-07-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多