findOne返回一个选项 - Some(MongoDBObject)或None
但是,findOne
实际上为Option
提供了一个简单的Some(DBObject)
:
scala> MongoClient("localhost", 27017)("db")("collection").findOne()
res0: Option[com.mongodb.DBObject] = Some({ "_id" : { "$oid" : "559860491b07c0dc5b52f3ee"} , "description" : "Some text" })
find
也会发生同样的情况,它会在DBObject
个实例上返回一个迭代器。经过几个小时的谷歌搜索和挠头,我不知所措。
这里发生了什么?我还在学习Scala所以可能会有一些我没有得到的细微差别。
答案 0 :(得分:1)
本教程中的示例返回普通DBObject
,因此我认为这只是文档中的错误。
Casbah在DBObject
和MongoDBObject
之间提供隐式(自动)转换 - 如下所述:
加载了隐式转换,可以将任何DBObject Pimp为MongoDBObject
我们自动提供将DBObject转换为的隐式方法 MongoDBObject。任何需要MongoDBObject的方法都会接受 只要您运行导入,DBObject就可以了。
您需要使用以下内容导入转换才能生效:
import com.mongodb.casbah.Imports._