我正在尝试编写使用Casbah工具包将数据写入MongoDB的函数:
import com.mongodb.casbah.WriteConcern
import ...
def saveRecord(rec: MongoDBObject) {
mongoColl.insert(rec, WriteConcern)
}
Casbah将WriteConcern定义为Scala对象。我收到以下错误:
No implicit view available from Object => com.mongodb.casbah.Imports.DBObject.
not enough arguments for method insert: (implicit dbObjView: Object => com.mongodb.casbah.Imports.DBObject, implicit concern: com.mongodb.WriteConcern, implicit encoder: com.mongodb.casbah.Imports.DBEncoder)com.mongodb.casbah.Imports.WriteResult. Unspecified value parameter dbObjView.
当我尝试简单地实例化WriteConcern时:
val wc:WriteConcern = WriteConcern
我收到此错误:
not found: type WriteConcern
我的代码的第一行有import com.mongodb.casbah.WriteConcern
,为什么找不到它?如何实例化WriteConcen?
谢谢!
答案 0 :(得分:2)
为必要的implicit
添加导入并插入如下:
import com.mongodb.casbah.Imports._
mongoColl.insert(rec)
关于无法实例化WriteConcern
的问题,这是因为com.mongodb
下有一个类,com.mongodb.casbah
下有一个类似枚举的对象。这将有效:
import com.mongodb.casbah.WriteConcern
val wc: com.mongodb.WriteConcern = WriteConcern.Normal