我正在使用Scala Salat使用MongoDB在我的项目中处理对象。
这是我的课程:
case class MyObject(
name: String,
metaInfos: Map[String, List[MetaInfo]]
)
case class MetaInfo(
timestamp: Int,
text: String
)
所以在Mongo中,metaInfos看起来像这样:
"metaInfos" : {
"info1" : [
{
"timestamp" : 123,
"text" : "some_text"
},
{
"timestamp" : 321,
"text" : "other_text"
}
],
"info2": [...]
}
当我尝试获取MetaInfo值时,会发生此错误:
发生服务器错误:scala.collection.immutable.Map $ Map2不能为 强制转换为models.MetaInfo
因此,当我尝试打印出来时,发现没有得到List[MetaInfo]
作为值,而是得到了List[Map2]
对象。
所以列表元素看起来像Map(timestamp -> 123, text -> "some_text")
没有编译错误,在我尝试从metaInfos
映射中获取值之前,一切都很好。
在不更改数据存储方式的情况下,有什么方法可以处理?
它可以与Map [String,Object]类型一起正常工作,但是由于某些原因它不能处理对象列表。