-2

以下の例外が発生しています: スレッド「メイン」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) at org.mongodb.scala.bson.codecs.IterableCodec.org$mongodb$scala$bson$codecs$IterableCodec$$writeValue(IterableCodec.scala:71) at org.mongodb.scala.bson. org.mongodb.scala.bson.codecs.IterableCodec$$anonfun$writeIterable$1.apply(IterableCodec.scala:87) で scala.collection でimmutable.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"))
4

1 に答える 1

0

forがないCodecためBsonElement、エラーが発生しています。を使用することをお勧めします。BsonDocumentそれ以外の場合は、カスタムを作成して登録する必要がありますCodec

于 2019-03-28T15:06:46.193 に答える