我正在通过编写一个简单的应用程序来学习 MongoDB 和 Casbah。当我尝试将具有列表成员的对象转换为 MongoDB 对象时卡住了。这是我的课
case class BorrowerRecord( name: String, checkedOut: List[BookTag]) {
require(!name.isEmpty)
require(!checkedOut.isEmpty)
}
case class BookTag (subject: Subject, bookName: String) {
require(!bookName.isEmpty)
}
case class Subject (name: String, category: Category) {
require(!name.isEmpty)
}
类别是具有 2 个案例类实现的密封特征,我打算像“枚举”一样使用它
sealed trait Category {
def name: String
}
object Category {
case object Computing extends Category { val name = "Computing"}
case object Math extends Category { val name = "Math"}
}
因此,BorrowerRecord 的一个实例将保存一个人从图书馆借出的书,每本书都由一个 BookTag 对象标识。BookTag 保存有关书籍的一些信息,例如书名、主题名称、类别等。
假设我有一个 BorrowerRecord 并想将其保存到 MongoDB
val borrowOnToday = BorrowerRecord( "My Name", List( BookTag(Subject("J2EE", Category.Computing), "Head First Java"),
BookTag(Subject("Linear Algebra", Category.Math), "Algebra for Dummies")))
我应该如何使用 Casbah 将其转换为 MongoDBObject ?
或者 Casbah 不是要走的路,还有其他库可以帮助我更轻松地将其持久化到 MongoDB 中?