2016-07-23 63 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