MongoDB は、JavaScript と同じ方法で配列を格納するため (インデックスを示す整数キーを持つオブジェクトとして)、ワイヤから外れたオブジェクトを表すために内部的に BasicDBList が必要です。そのため、現在、Casbah はそれを Scala リストとして自動的に表現しません.... BasicDBList は HashMap であり、List ではありません。
ただし、Casbah は内部的に BasicDBList を LinearSeq[AnyRef]; として扱えるように暗黙の変換を提供します。LinearSeq は型ツリー上では List とは少し異なりますが、さまざまな理由からより適切な型です。残念ながら、暗黙的な変換で キャストすることはできません。
今のところ、項目を DBList として取得し、暗黙を使用する LinearSeq として型注釈を付けるか、単純に toList を呼び出すことをお勧めします (暗黙は toList メソッドを提供します)。
scala> val l = MongoDBList("foo", "bar", "baz")
l: com.mongodb.BasicDBList = [ "foo" , "bar" , "baz"]
scala> val obj = MongoDBObject("list" -> l)
obj: com.mongodb.casbah.commons.Imports.DBObject = { "list" : [ "foo" , "bar" , "baz"]}
scala> obj.as[BasicDBList]("list")
res8: com.mongodb.casbah.Imports.BasicDBList = [ "foo" , "bar" , "baz"]
scala> obj.as[BasicDBList]("list").toList
res9: List[AnyRef] = List(foo, bar, baz)
as[T]: Tちなみに、メソッドとメソッドは、型のgetAs[T]: Option[T]マッサージを行うためのトリックが内部にあるため、キャスティングよりも推奨されます。Casbah の次のリリースにはコードが含まれているため、Seq、List などを要求すると、それが DBListasであり、要求したタイプgetAsに自動的に変換されます。