【问题标题】:how to retrieve A scala mutable Set from mongo如何从 mongo 中检索一个 scala mutable Set
【发布时间】:2015-05-11 10:10:45
【问题描述】:

我在 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

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

【问题讨论】:

    标签: mongodb scala casbah scala-2.11


    【解决方案1】:

    没有从 BasicDBListSet 的隐式转换器。

    等价于BasicDBList 将是List 并且有MongoDBObjects 的助手可以让您将密钥作为一种类型,例如:

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

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-04-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-20
      • 2020-02-13
      • 2013-06-16
      • 1970-01-01
      相关资源
      最近更新 更多