Я изучаю 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-х классов, я намеревался использовать это как "Enum"
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")))
Как следуетпреобразовать это в MongoDBObject с помощью Casbah?
Или Casbah - не тот путь, и есть другие библиотеки, которые могут помочь мне легче перенести это в MongoDB?