【发布时间】:2013-02-17 10:14:04
【问题描述】:
我正在尝试获取 doc 并获取它的属性。当我使用 findOne 方法时,我希望得到 MongoDBObject,但我收到了 Option[com.mongodb.DBObject]。如何从中获取属性?是否可以获取 MongoDBObject 而不是这个?
scala> var col = MongoClient()("test")("counters")
col: com.mongodb.casbah.MongoCollection = MongoCollection({ "_id" : "some" , "value" : 0})
scala> var doc = col.findOne()
doc: Option[com.mongodb.DBObject] = Some({ "_id" : "some" , "value" : 0})
scala> doc("_id")
<console>:13: error: Option[com.mongodb.DBObject] does not take parameters
doc("_id")
^
scala>
【问题讨论】:
-
Why Option[T] ? 的可能重复项
-
简而言之:如果你 100% 确定你有一个值,则使用
.get方法,如果你不确定,则使用.getOrElse(*somedefault*),但希望提供默认值以防数据库返回任何内容。您还可以使用 .map 来转换选项。