我在编写这个函数时遇到了问题,该函数接受一个字符串并返回一个与其关联的字符串列表。
(我期望在mongodb中像{_id:....,hash:"abcde",n:"a","b","ijojoij"}这样的条目)
def findByHash(hash: Hash) = {
val dbobj = mongoColl.findOne(MongoDBObject("hash" -> hash.hashStr))
val n = dbobj match {
case Some(doc: com.mongodb.casbah.Imports.DBObject) => {
doc("n") match {
case Some(n: com.mongodb.casbah.Imports.DBObject) => {
Some(List[String]() ++ n map { x => x.asInstanceOf[String] })
}
case _ => {
None // hash match but no n in object
}
}
}
case _ => {
None // no hash match
}
}
n
}代码有什么问题吗?你知道怎么改正吗?
发布于 2011-01-21 18:31:43
doc("n")返回AnyRef,所以您应该显式地将其转换为BasicDBList。
val n = doc("n").asInstanceOf[BasicDBList]
Some(List[String]() ++ n map { x => x.asInstanceOf[String] })https://stackoverflow.com/questions/4754442
复制相似问题