小编ray*_*ray的帖子

带有案例类的 Mongo scala 驱动程序获取 java.util.NoSuchElementException: key not found Exception

当密钥不存在时,我得到一个 java.util.NoSuchElementException。

我有一个案例类:

case class Token(_id: ObjectId,  token: String)
Run Code Online (Sandbox Code Playgroud)

尝试从ongodb读取数据:

private val tokenCodecProvider = Macros.createCodecProvider[Token]()
private val codecRegistry = fromRegistries( fromProviders(tokenCodecProvider), DEFAULT_CODEC_REGISTRY )  
private val database = MongoClient().getDatabase("test").withCodecRegistry(codecRegistry)
val tokenTable: MongoCollection[Token] = database.getCollection("Token")

def test = tokenTable.find().subscribe(
  (user: MobileDevice) => println(user),       
  (error: Throwable) => println(s"Query failed: ${error.getMessage}"), 
  () => println("Done")                                               
Run Code Online (Sandbox Code Playgroud)

)

Mongodb中令牌为空时出现异常

java.util.NoSuchElementException: key not found: token
at scala.collection.MapLike$class.default(MapLike.scala:228)
at scala.collection.AbstractMap.default(Map.scala:59)
at scala.collection.MapLike$class.apply(MapLike.scala:141)
at scala.collection.AbstractMap.apply(Map.scala:59)
at com.testmongo.Mongo$$anon$1$TokenMacroCodec$3.getInstance(mongo.scala:15)
at com.testmongo.Mongo$$anon$1$TokenMacroCodec$3.getInstance(mongo.scala:15)
at org.mongodb.scala.bson.codecs.macrocodecs.MacroCodec$class.decode(MacroCodec.scala:102)
at com.testmongo.Mongo$$anon$1$TokenMacroCodec$3.decode(mongo.scala:15)
at com.mongodb.connection.ReplyMessage.<init>(ReplyMessage.java:57)
at com.mongodb.connection.QueryProtocol$QueryResultCallback.callCallback(QueryProtocol.java:535)
at com.mongodb.connection.ResponseCallback.onResult(ResponseCallback.java:48)
at …
Run Code Online (Sandbox Code Playgroud)

scala mongodb

5
推荐指数
0
解决办法
272
查看次数

标签 统计

mongodb ×1

scala ×1