Casbah多维数组 - 从数据库中检索

时间:2014-09-30 10:56:39

标签: mongodb scala casbah

我有一个包含存储在MongoDB中的二维数组的case类, 因为Salat不支持Arrays我试图编写自己的转换器。

case class Matrix(id: String, matr: Array[Array[Int]])

implicit def toDBObject(m: Matrix) = MongoDBObject(
    "id" -> m.id,
    "matr" -> s.matr
)

implicit def toMatr(in: MongoDBObject) =  Matrix(
    in.as[String]("id"),
    in.as[Array[Array[Int]]]("matr") // This does not work
)

toDBObject工作正常,但toMatr无效。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:1)

我设法使用yield和两个for循环:

 for (e <- in.as[MongoDBList]("matr").toArray)
   yield for (x <- e.asInstanceOf[BasicDBList].toArray) yield x.asInstanceOf[Int]

这会将2d MongoDBList转换为2d Scala数组