【问题标题】:Mongo casbah: cannot resolve "++"Mongo casbah:无法解析“++”
【发布时间】:2016-07-23 01:18:05
【问题描述】:

Casbah 版本:2.8.0

以下示例:http://api.mongodb.com/scala/casbah/2.0/tutorial.html#combining-multiple-dbobjects

我将下面用作导入语句。

import com.mongodb.casbah.AggregationOutput
import com.mongodb.casbah.Imports._
import com.mongodb.casbah.TypeImports._
import com.mongodb.casbah.commons.{MongoDBList, MongoDBObject}

++ 下方出现Cannot resolve symbol ++ 错误。

val basic = MongoDBObject(
  "id" -> "123",
  "project" -> "pp123"
)

val createdTime = MongoDBObject(
  "createdTime" -> MongoDBObject(
    "$exists" -> false
  )
)

val query = basic ++ createdTime

我尝试谷歌但没有找到太多,official documentation 也没有帮助......

我想我只是缺少++ 的导入语句,但我不知道要导入哪个。

【问题讨论】:

    标签: mongodb scala import driver casbah


    【解决方案1】:

    对源代码的快速 grep 揭示了 MongoDBObject 类上的两个 ++ 方法:

    > grep -r "def ++" .
    ./casbah-commons/src/main/scala/MongoDBObject.scala:  def ++(pairs: (String, Any)*): DBObject = {
    ./casbah-commons/src/main/scala/MongoDBObject.scala:  def ++[A <% DBObject](other: A): DBObject = {
    

    第二个在这里看起来很相关。 &lt;% 表示视图绑定,因此您需要从 MongoDBObjectDBObject 的隐式转换。

    > grep -r "implicit .*: DBObject =" .
    ./casbah-commons/src/main/scala/Implicits.scala:  implicit def map2MongoDBObject(map: scala.collection.Map[String, Any]): DBObject =
    ./casbah-commons/src/main/scala/Implicits.scala:  implicit def unwrapDBObj(in: MongoDBObject): DBObject = in.underlying
    

    看来你可以导入com.mongodb.casbah.Implicits._ 来获得这个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-08-18
      • 1970-01-01
      相关资源
      最近更新 更多