2012-07-15 193 views
1

我是MongoDb的新手。我试图从数据库中检索数据。这里是我的代码部分:MongoDb。从数据库中提取整数。 java.lang.Integer不能转换为java.lang.String

dbc(TABLENAME).find (MongoDBObject (UID -> uid)).toList.foreach {s => 
     val Rollno = s.getAs[String](ROLL).getOrElse ("?") 

显然ROLL设置为整数,我不断收到错误java.lang.ClassCastException:java.lang.Integer中不能转换为java.lang.String 是有一个简单的解决方案来获得它?

回答

4

如何获得它作为一个整数,然后使用toString?

dbc(TABLENAME).find (MongoDBObject (UID -> uid)).toList.foreach {s => 
    val Rollno = s.getAs[Int](ROLL).map(_.toString).getOrElse("?") 
+0

+1或可能为对象,在情况下,它可以是整数或字符串(但只有当这是可能的,否则没有必要让过于宽松)。 – Thilo 2012-07-15 09:18:23

+2

另外,我会尽可能延迟这个''getOrElse''。我假设你用''“替换''None'''''来打印/输出值。但是,如果条件依赖于''Rollno'',并且位于检索对象的位置和输出位置之间,那么如果您可以匹配''Some'' /'' '不'''而不是一些字符串/“?”。特别是如果“?”实际上可能是一个有效的结果,例如,如果您检索一个可能包含任意用户输入的字段 - 也就是“?” - 但它也可能不存在。 – 2012-07-15 09:26:15

+0

这工作膨胀...谢谢你! – user1510855 2012-07-15 09:47:27

相关问题