私はScalaで書かれたアプリケーションを使って、Mongoデータベースにアクセスしました。そこでは、データを完全にうまく照会して挿入することができます。ScalaのMongoDBコーデックが壊れていますか?
私はcollection.distinct("user")
を使用しようとすると、しかし、私はエラーを取得する:
Unknown Error org.bson.codecs.configuration.CodecConfigurationException:
Can't find a codec for class scala.runtime.Nothing$.
は、いくつかのグーグルを行った後、私はコーデックを指定する必要があるだろうことがわかったので、私は1でMongoClient
をinitalised:
val clusterSettings = ClusterSettings
.builder()
.hosts(scala.collection.immutable.List(new com.mongodb.ServerAddress(addr)).asJava)
.build()
val settings = MongoClientSettings.builder()
.codecRegistry(MongoClient.DEFAULT_CODEC_REGISTRY)
.clusterSettings(clusterSettings)
.build()
val mongoClient: MongoClient = MongoClient(settings)
まだ運がない、同じエラーが発生しました。
私は、カスタムコーデックas per this web pageを作成する必要があります考え出し:
class NothingCodec extends Codec[Nothing] {
override def encode(writer:BsonWriter, value:Nothing, encoderContext:EncoderContext)={}
override def decode(reader: BsonReader, decoderContext: DecoderContext): Nothing = {
throw new Exception
}
override def getEncoderClass(): Class[Nothing] = {
classOf[Nothing]
}
}
しかし、これは動作しませんも意味がない、何も有効な戻り値の型ではないではありません。 there exist no instances of this type。 その結果、これはobvisouly(もちろん!)Unknown Error java.lang.Exception
の新しいエラーでは動作しません
を私はモンゴScalaのドライバで何かが足りないのですか?それともちょうど壊れていますか?
http://reactivemongo.org/をご覧ください。 – cchantep