MongoDB SetDefaultValue 不起作用 - 为什么?

lot*_*ser 1 c# mapping mongodb

我正在使用 C# 和 mongodb 官方驱动程序。使用 BsonClassMap 类映射我的实体时遇到问题。下面是一些示例代码:

BsonClassMap.RegisterClassMap<Article>(cm =>
{
      cm.AutoMap();
      cm.GetMemberMap(c => c.Title).SetElementName("title").SetDefaultValue("abc");
}
Run Code Online (Sandbox Code Playgroud)

当我将它保存到 db 时,我总是在标题字段中得到一个空值,而不是预期的“abc”。我试过 enum 类型并遇到同样的问题 - 我哪里出错了?

Rob*_*tam 5

如果被反序列化的文档没有该字段或属性的值,则在反序列化期间使用默认值为字段或属性分配值。

如果您在内存中创建了一个 Title 属性为空值的对象,那么空值将存储在数据库中。仅仅因为 Title 为 null 并不意味着在保存文档时它将被默认值替换。