我正在尝试使用Javascript对象Map[String, Any]
的对应文件创建文档。当我尝试插入新文档时,我会得到这个例外:
org.bson.codecs.configuration.CodecConfigurationException:无法找到类java.lang.Object的编解码器。
这是我的测试文档说明:
import org.mongodb.scala.bson.ObjectId
object ExampleCollection {
def apply(test: Map[String, Any]): ExampleCollection = new ExampleCollection(new ObjectId(), test)
}
case class ExampleCollection(_id: ObjectId, test: Map[String, Any])
这是编解码器注册表:
val codecRegistry = fromRegistries(fromProviders(classOf[ExampleCollection]), DEFAULT_CODEC_REGISTRY)
我写了一个小应用程序并将其推送到github。
目前,我的解决方法是序列化Map[String, Any]
并将其另存为String。
所以,我的问题是,在mongodb中使用Map[String, Any]
作为动态对象的类型我该怎么办?或者我可以做些其他事情让它发挥作用吗?
答案 0 :(得分:0)
只要它不知道它是什么以及如何序列化/反序列化它就不能将任何传递给mongo。
如果是json,您可以尝试将其转换为BSONDocument
而不是格式未知的Map
。
例如,请参阅here转换play-json的案例。