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)
private val settings = MongoClientSettings.builder
.clusterSettings(clusterSettings)
.build
我的MongoClientSettings以前是这样的,我需要将它更改为:
private val settings = MongoClientSettings.builder
.clusterSettings(clusterSettings)
.codecRegistry(MongoClient.DEFAULT_CODEC_REGISTRY)
.build
似乎mongo没有假定默认的编解码器注册表
感谢@Ross的帮助!
scala-mongo-driver有一个处理case类的很好的文档。http://mongodb.github.io/mongo-scala-driver/2.3/getting-start/quick-tour-case-classs/。在当前情况下,我的case类字段是option[T]值。因此值可以是或。默认编解码器现在将“none”值序列化为null。但如果键的值为none,我想排除它。
DataStax驱动程序Cassandra版本:3.3.2 Scala版本:2.12.4 我正在为Cassandra的datastax java驱动程序中的mappingmanager创建一个scala包装器。 null 为什么它总是从Scala.Collection.Mutable.ArrayBuffer“转换”?解决这个问题的方法是什么?
我有一个简单的类叫做Signal。课程内容如下: 我试图在MongoDB(v3.4)插入信号。我使用以下方法插入: 我得到了以下例外: org.bson.codecs.configuration.代码配置异常:找不到in.co.mysite.webapi.models.Signal类的编解码器。 我在这里检查了一个类似的问题,但是插入代码不同。我从回答中得到提示,修改了我的方法,但看起来不干净。修
应用程序启动失败 说明: 中的方法的参数0需要一个无法找到的类型的bean。 措施: 考虑在配置中定义类型为的bean。 拾取的JAVA\u工具选项:-agentlib:jvmhook 拾取的JAVA\u选项:-Xbootclasspath/a:“C:\Program Files(x86)\HPE\Unified Functional Testing\bin\JAVA\u shared\class