我有一个包含存储在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
无效。我怎样才能做到这一点?
答案 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数组