我遇到以下异常:线程“主”org.bson.codecs.configuration.CodecConfigurationException 中的异常:找不到类 org.bson.BsonElement 的编解码器。在 org.bson.codecs.configuration.CodecCache.getOrThrow(CodecCache.java:46) 在 org.bson.codecs.configuration.ProvidersCodecRegistry.get(ProvidersCodecRegistry.java:63) 在 org.bson.codecs.configuration.ChildCodecRegistry.get (ChildCodecRegistry.java:51) 在 org.mongodb.scala.bson.codecs.IterableCodec.org$mongodb$scala$bson$codecs$IterableCodec$$writeValue(IterableCodec.scala:71) 在 org.mongodb.scala.bson。 codecs.IterableCodec$$anonfun$writeIterable$1.apply(IterableCodec.scala:87) at org.mongodb.scala.bson.codecs.IterableCodec$$anonfun$writeIterable$1.apply(IterableCodec.scala:87) at scala.collection。不可变的.List.foreach(List.scala:
尝试应用不同类型的编码器,但没有成功。需要如何为 BsonElement 使用编解码器
下面是给出上述运行时异常的代码:
val mongoClient= MongoClient(uriString)
val db = mongoClient.getDatabase(databaseName)
val collection = db.getCollection(collectionName)
var caseDBObj = new ListBuffer[BsonElement]()
caseDBObj += new BsonElement("Key1", new BsonString("Value1"))
caseDBObj += new BsonElement("Key2", new BsonString("Value2"))
caseDBObj += new BsonElement("Key3", new BsonString("Value3"))
val observableDoc = collection
.findOneAndUpdate(
equal("id", "1234"),
addToSet("ban_case_tkt", caseDBObj)
)
observableStatus(observableDoc)
val awaitedR = Await.result(observableDoc.toFuture, Duration.Inf)
下面的代码有效:
val observableDoc = collection
.findOneAndUpdate(
equal("id", "1234"),
addToSet("ban_case_tkt", "test11"))