Casbah的类型不安全行为

时间:2013-09-29 14:33:58

标签: mongodb casbah

我的id是长的。但是,如果我getAs[String],它会盲目地返回Some(0)而不是无。它检查密钥的存在而不是类型。

scala> collection
res26: com.mongodb.DBObject = { "_id" : { "$oid" : "520f8bf544ae41ec63d02eec"} , "date_about" : "2013-08-17T20:13:00.365Z" , "date_created" : "2013-08-17T20:13:00.365Z" , "date_modified" : "2013-09-07T18:03:20.101Z" , "id" : 0 , "node_type" : "meta-folder" , "parent_id" : 0 , "title" : "my stuff, renamed by ajax, wow" , "version" : 2}

scala> collection.getAs[String]("id")
res27: Option[String] = Some(0)

scala> collection.getAs[Long]("id")
res28: Option[Long] = Some(0) //get-ing this is an java.lang.ClassCastException

scala> collection.getAs[Long]("id").get
res29: Long = 0

这不是意料之外的行为;我应该没有Option[String] = None吗?我如何得到预期的行为?我sbt-ed“org.mongodb”%%“casbah”%“2.6.2”

1 个答案:

答案 0 :(得分:0)

我已经向Casbahs问题跟踪器添加了一张票:SCALA-136并将修复Casbah 2.7.0版本。