我从 MongoDB 返回的数据如下所示:
> db.foo.findOne()
[
{
"_id" : "some string",
"bar" : [
[
14960265,
0.5454545454545454
],
[
30680,
0.36363636363636365
],
[
12852625,
0.09090909090909091
]
],
}
]
该bar
属性包含一个未知大小的列表,其中每个项目都是一个长度为 2 的列表,其中包含一个 Int 和一个 Double。在 Scala 中,我将其表示为 List[(Int, Double)]。
我将如何为这个结构编写模型以与 Salat 一起使用?
Salat 不做元组,所以我尝试了:
case class FooEntry(a: Int, b: Double)
case class Foo(_id: String, bar: List[FooEntry])
但得到:
java.lang.IllegalArgumentException:BasicBSONList 只能与数字键一起使用,而不是:[a]
也试过:
case class Foo(_id: String, sps: List[Any])
但得到:
java.lang.ClassCastException:com.mongodb.BasicDBList 不能转换为 scala.collection.immutable.List
显然,数据可以以更好的形式存储,使用对象而不是长度为 2 的数组。但鉴于这就是我所拥有的,有没有一种使用 Salat 反序列化它的好方法?谢谢!