1

我正在尝试使用 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?谢谢!

4

1 回答 1

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
于 2013-03-31T06:25:35.700 回答