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 に答える