2016-07-23 61 views
0

卡斯巴版本:2.8.0這裏蒙戈卡斯巴:無法解析 「++」

下面的例子:http://api.mongodb.com/scala/casbah/2.0/tutorial.html#combining-multiple-dbobjects

我用下面的import語句。

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都於事無補......

我想我只是缺少一個import語句爲++,但我不知道要導入哪一個。

回答

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 = { 

第二個看起來與此有關。 <%表示視圖綁定,因此您需要從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._得到這個。

+0

現在解決了,非常感謝:) – keypoint