我很难用 mongodb 在 play 2.1.5 上创建我的 BSON 读/写器。
这是 app/model/Boat.scala 中的代码摘录:
implicit object BoatBSONReader extends BSONDocumentReader[Boat] {
def read(doc: BSONDocument): Boat =
Boat(
(...)
doc.getAs[Accomodation]("accomodation").get,
(...)
)
}
然后在 app/model/Accomodation.scala 我有:
case class Accomodation(number_cabins: Int, cabin_configuration: Option[String], bed_configuration: Option[String], number_guest: Int)
(...)
implicit object AccomodationBSONReader extends BSONDocumentReader[Accomodation] {
def read(doc: BSONDocument): Accomodation =
Accomodation(
doc.getAs[Int]("number_cabins").get,
doc.getAs[String]("cabin_configuration"),
doc.getAs[String]("bed_configuration"),
doc.getAs[Int]("number_guest").get)
}
}
我在某些字段上使用“Option [String]”,因为 mongodb 记录中可能缺少这些键。在这种情况下,我想在我的 scala 对象中返回一个空值。
这在编译时导致此错误:
[NoSuchElementException: None.get]
doc.getAs[Accomodation]("accomodation").get,
也许有人会指出我正确的方向。
谢谢!