Tim*_*ple 18 c# mongodb nosql mongodb-.net-driver
我正在探索Mongo作为关系数据库的替代方案,但我遇到了无模式集合概念的问题.
理论上听起来很棒,但只要将模型与集合绑定,模型就会成为您的事实模式.您不能再只是添加或删除模型中的字段,并希望它继续工作.我在这里看到了与管理关系数据库相同的问题,因为您需要某种类型的脚本从一个版本的数据库模式迁移到另一个版本.
我是从错误的角度接近这个吗?这里的成员采取了哪些方法来确保他们的收集项目在更新其域模型时与其域模型保持同步?
编辑:值得注意的是,这些问题在关系数据库中存在明显的为好,但我在使用无模式数据库和更具体蒙戈缓解这一问题专门询问策略.谢谢!
Ian*_*cer 13
与SQL Server相比,使用MongoDB进行模式迁移实际上要少得多.
添加新字段很容易,旧记录将设置为null,或者您可以使用属性来控制默认值 [BsonDefaultValue("abc", SerializeDefaultValue = false)]
该[BsonIgnoreIfNull]属性对于在序列化时省略文档中为空的对象也很方便.
删除字段也相当容易,您可以使用[BSonExtraElements](请参阅文档)收集它们并保存它们,或者您可以使用[BsonIgnoreExtraElements]它们将它们丢弃.
有了这些,就没有必要将每个记录转换为新的模式,您可以根据需要在记录更新时或在后台慢慢地执行此操作.
PS,因为你也对使用Mongo动态感兴趣,这是我尝试过这些试验的实验.这是一个更新的帖子,带有完整的序列化器和动态对象的反序列化器.
| 归档时间: |
|
| 查看次数: |
3713 次 |
| 最近记录: |