2
오류 메시지 :몽고 - 스칼라 - 드라이버 : CodecConfigurationException은 : 클래스 immutable.Document을위한 코덱을 찾을 수 없습니다
org.bson.codecs.configuration.CodecConfigurationException: Can't find a codec for class org.mongodb.scala.bson.collection.immutable.Document
코드 : :와
def queueWrite(collection: String, filter: Map[String,() => String], data: Map[String,() => String]) {
val col = collections.get(collection).get
val filterBson = Document()
filter.foreach(f => { filterBson.append(f._1, f._2.apply) })
val dataBson = Document()
data.foreach(f => { dataBson.append(f._1, f._2.apply) })
val options = new FindOneAndUpdateOptions
options.returnDocument(ReturnDocument.AFTER)
options.upsert(true)
val observer = new Observer[Document] {
override def onNext(doc: Document) = println(doc.toJson)
override def onError(e: Throwable) = e.printStackTrace
override def onComplete = println("onComplete")
}
val observable: Observable[Document] = col.findOneAndUpdate(filterBson, dataBson, options)
observable.subscribe(observer)
}
를 호출
val filter = Map[String,() => String]("uuid", p.getUniqueId.toString)
var dataMap = Map[String,() => String]()
dataMap = dataMap.+("uuid" -> p.getUniqueId.toString)
dataMap = dataMap.+("nickname" -> p.getDisplayName)
queueWrite("players", filter, dataMap)
변경 가능한 문서를 사용해 보았지만 findoneandupdate가 변경할 수 없음을 반환한다는 것을 알았습니다. 나는 또한 BsonDocument와 같은 필터를 사용하려고했으나 ofc는 효과가 없었다.
private val settings = MongoClientSettings.builder
.clusterSettings(clusterSettings)
.codecRegistry(MongoClient.DEFAULT_CODEC_REGISTRY)
.build
그것을 : 여기에서 갈 곳 정말 모르겠어요, 어떤 도움을 주시면 감사하겠습니다 :)
MongoCollection은 어떻게 작성하고 있습니까? 기본 코덱 레지스트리를 사용하지 않는 것 같습니다. – Ross