2013-03-03 2 views
0

Я использую Casbah 2.5.0. Пример в учебнике:Как преобразовать MongoDBList в BasicDBList?

scala> val builder = MongoDBList.newBuilder 
scala> builder += "foo" 
scala> builder += "bar" 
scala> builder += "x" 
scala> builder += "y" 
builder.type = [email protected] 

scala> val newLst = builder.result 
newLst: com.mongodb.BasicDBList = [ "foo" , "bar" , "x" , "y"] 

Так что newLst здесь BasicDBList.

Но когда я сам это пробовал, он работает по-другому.

scala> val builder = MongoDBList.newBuilder 
scala> builder += "foo" 
scala> builder += "bar" 
scala> val newLst = builder.result 
newLst: com.mongodb.casbah.commons.MongoDBList = [ "foo" , "bar"] 

новыйLst здесь тип MongoDBList.

Почему так? Как преобразовать MongoDBList в BasicDBList?

ответ

1

Существует неявное преобразование из com.mongodb.casbah.commons.MongoDBList в com.mongodb.BasicDBList в касбы (проверить com.mongodb.casbah.commons.Implicits):

implicit def unwrapDBList(in: MongoDBList): BasicDBList = in.underlying 

Просто передайте MongoDBList в положение, где BasicDBList ожидается:

scala> val l: BasicDBList = newLst 
l: com.mongodb.casbah.Imports.BasicDBList = [ "foo" , "bar"] 

Если вы хотите создать MongoDBList от List:

scala> val list = List("foo", "bar") 
list: List[java.lang.String] = List(foo, bar) 

scala> val dbList = MongoDBList(list:_*) 
dbList: com.mongodb.casbah.commons.MongoDBList = [ "foo" , "bar"] 
+0

Спасибо. И еще один вопрос. Есть ли простой способ конвертировать список в MongoDBList (или BasicDBList)? – un1t

+1

Я обновил свой ответ –

+0

@SergeyPassichenko вы можете ответить на http://stackoverflow.com/questions/15188605/scala-casbah-how-to-convert-list-to-mongodblist, а? –