0

我在 mongoDB 中存储了一个可变集,现在我想从 mongo 中检索该集,但我无法做到这一点,也许我做错了这是我的代码

class A{
var genreIdSet = scala.collection.mutable.Set[Int]()

def addToGenreIdSet(genreId : Int)  = {
    genreIdSet += genreId

  }

  def getGenreIdSet : scala.collection.mutable.Set[Int]= {
    genreIdSet
  }
}

用于存储在 mongo

val result:WriteResult= collection.insert(new BasicDBObject("_id",artistImpl.getUuid)
                        .append("GetGenreIdSet",artistImpl.getGenreIdSet)
                                            ,WriteConcern.Acknowledged)

我正在这样检索

val cursor=collection.find()
    var obj=new BasicDBObject
 try {
     while(cursor.hasNext)
     {
       obj=cursor.next().asInstanceOf[BasicDBObject]
       id=obj.getString("_id").toInt
       log.info("id value is "+id)
              var a =obj.get("GetGenreIdSet").asInstanceOf[scala.collection.mutable.Set[Int]]
       log.info("Set is "+a) 

但它会引发错误

-com.mongodb.BasicDBList cannot be cast to scala.collection.mutable.Set
java.lang.ClassCastException: com.mongodb.BasicDBList cannot be cast to scala.collection.mutable.Set

我该如何解决这个问题请帮助我

4

1 回答 1

1

没有从BasicDBList到 a 的隐式转换器Set

等效于 aBasicDBList将是 aList并且有一些帮助MongoDBObjects程序允许您将密钥作为一种类型,例如:

obj.getAs[List[Integer]]("GetGenreIdSet")

getAs遵循 Scala 约定并在Option此处返回它会返回Option[List[Integer]]

于 2015-05-15T16:32:40.370 回答