0

我将模型描述为case class WorkAreaType(name: String)findAll 方法

object WorkAreaType {
  import system.db.Mongo.JsonFormats._
  def findAll = Await.result(Mongo.workAreaTypes.find(Json.obj()).cursor[WorkAreaType].collect[List](), 3 seconds)
}

json格式:

object JsonFormats {
    implicit val workAreaTypeFormat = Json.format[WorkAreaType]
}

Mongo.workAreaTypes是一个JSONCollection val workAreaTypes: JSONCollection = db.collection[JSONCollection]("WorkAreaTypes")

调用列表后如何读取 mongo _id 对象WorkAreaType.findAll

4

1 回答 1

1

快速但不是很好的方法是将您的案例类定义为

案例类 WorkAreaType(_id:Option[BSONObjectID] , name: String)

这不是很好的原因是,这将使反应性 mongo 通过您的存储库/dao/storage 层“泄漏”,无论您如何命名。

一个“更好”的选择是在您将其读取到 scala 对象之前操纵 json 以“展平”对象 id,并在将其写回 json 后对其进行膨胀。这可以使用 Json 转换器或 JsZippers 来完成,但需要进行一些研究。

于 2014-02-07T14:41:17.910 回答