【问题标题】:Scala and mongodb different model versionScala和mongodb不同的模型版本
【发布时间】:2018-11-28 19:20:45
【问题描述】:

我正在考虑一个有趣的场景,并试图找出最佳和优雅的解决方案以避免未来出现问题,我非常确定这里有人有一个很好的想法来解决这个问题。

这是场景:

在 scala 播放框架中(实际上这对任何 oo 语言都有效)我有一个简单的类用户代表我的实际用户模型:

Case class user(name:String, age:Int){}

现在我有了我的 JSON 隐式转换器,我可以在 MongoDB 数据库(或任何数据库)中保存许多用户。

一段时间后,我决定向我的用户类添加一个新属性,比如说:

Case class user(name:String, age:Int, surname:String){}

现在我的应用程序已更新,如果我运行它,一切都会正常运行,直到我尝试加载使用旧模型保存的旧用户。

在这种情况下,我当然有一个例外,导致数据库中的数据无效(实际上缺少 surname 属性)并且无法创建对象。

我的问题是,处理这个问题的最佳方法是什么,尤其是使用 scala 和非关系型数据库作为 MongoDB?

谢谢大家。

更新

建议使用 Option[String] 是最好的解决方案

【问题讨论】:

    标签: mongodb scala oop playframework


    【解决方案1】:

    您可以将新字段添加为 Option[String]。 因此,如果它丢失(对于旧数据),它将是 None 。它将是 Some(value) (用于新数据)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-07-22
      • 1970-01-01
      • 2018-12-06
      • 2016-02-16
      • 2018-07-17
      • 1970-01-01
      • 2023-04-04
      相关资源
      最近更新 更多