Casbah - getAsOrElse没有处理Option值

时间:2015-01-27 14:20:35

标签: mongodb scala casbah

我有以下代码:

new Room(
  dbObject.get("_id").get.toString,
  List[User]() ,
  List[Message](),
  dbObject.getAs[Date]("creation").get,
  //dbObject.getAsOrElse[Option[Date]]("expires", None),
  if(dbObject.containsField("expires")) 
    Some(dbObject.getAs[Date]("expires").get) 
  else 
    None,
  List[String]())

我想知道我在使用getAsOrElse时做错了什么,因为如果我使用注释行,我将永远不会从字段 expires 获取值。要修复它,我需要实现,如果句子得到值。

提前感谢。

1 个答案:

答案 0 :(得分:1)

getAs[T]返回选项[T]时,你可以使用它,例如:

dbObject.getAs[Date]("expires")

如果expires字段为Some(dateValue),则返回Date;如果expires字段不存在,则返回None 如果expires字段不能转换为Date