Scala的好處之一就是您可以安全的方式,因此應用程序中不會出現未定義的值。然而,Mongo根本不安全。所以,我認爲,Mongo的一種轉換是很好的,以確保只有正確的值被保存(作爲字符串)。我有這種類型的在我的斯卡拉:在Lift的記錄框架中創建專門的字段
sealed trait Tribe
object Tribe {
def fromString(s:String) = s match {
case "Earth Pony" => EarthPony
case "Pegasus" => Pegasus
case "Unicorn" => Unicorn
case "Alicorn" => Alicorn
case _ => throw new NoSuchElementException
}
}
case object EarthPony extends Tribe {
override def toString = "Earth Pony"
}
case object Pegasus extends Tribe {
override def toString = "Pegasus"
}
case object Unicorn extends Tribe {
override def toString = "Unicorn"
}
case object Alicorn extends Tribe {
override def toString = "Alicorn"
}
現在我想打一個場TribeField
,我可以在一個MongoRecord
類應用,以確保當我讀了記錄此轉換完成後,或將其保存。
不幸的是,Lift的記錄文檔似乎很稀疏,到目前爲止我還沒有找到任何有關如何做到這一點的有用信息。也許這裏有人可以給我一些提示?