2017-07-04 17 views
1

mongoクエリ結果の数を取得しようとしていますが、エラーが発生しています org.bson.codecs。 configuration.CodecConfigurationException:クラスscala.Someのコーデックが見つかりません。誰かが助けることができますか?Scalaエラー:org.bson.codecs.configuration.CodecConfigurationException:クラスscala.Someのコーデックが見つかりません

これは私のコードです:

def fetchData() = { 
    val mongoClient = MongoClient("mongodb://127.0.0.1") 
    val database = mongoClient.getDatabase("assignment") 
    val movieCollection = database.getCollection("movies") 
    val ratingCollection = database.getCollection("ratings") 
    val latch1 = new CountDownLatch(1) 
    movieCollection.find().subscribe(new Observer[Document] { 

     override def onError(e: Throwable): Unit = { 
     println("Error while fetching data") 
     e.printStackTrace() 
     } 

     override def onComplete(): Unit = { 
     latch1.countDown() 
     println("Completed fetching data") 
     } 

     override def onNext(movie: Document): Unit = { 
     if (movie.get("movieId") != null) { 
      ratingCollection.count(equal("movieId", movie.get("movieId"))).subscribe(new Observer[Long] { 
      override def onError(e: Throwable): Unit = println(s"onError: $e") 
      override def onNext(result: Long): Unit = { println(s"In count result : $result") } 
      override def onComplete(): Unit = println("onComplete") 
      }) 
     } 
     } 

    }) 
    latch1.await() 
    mongoClient.close() 
    } 

私はモンゴ3.2.12とScalaの-driverを使用しています:

<dependency> 
    <groupId>org.mongodb.scala</groupId> 
    <artifactId>mongo-scala-driver_2.11</artifactId> 
    <version>2.1.0</version> 
</dependency> 

答えて

0

this answerのコードを使用して、あなたのコーデックレジストリにそのコーデックを追加。まず、追加する

import org.bson.codecs.configuration.CodecRegistries.fromCodecs 

あなたはすでにそのパッケージから他のインポートを既に持っているかもしれません。たとえば、プロバイダ、レジストリ、コーデックの両方を使用している場合:

import org.bson.codecs.configuration.CodecRegistries.{fromRegistries, fromProviders, fromCodecs} 

インポートする必要があるものがすべてあることを確認してください。その後

val codecRegistry = fromRegistries(/* ..., */ fromCodecs(new SomeCodec()), DEFAULT_CODEC_REGISTRY) 

val mongoClient = MongoClient("mongodb://127.0.0.1") 
val database = mongoClient.getDatabase("assignment").withCodecRegistry(codecRegistry) 
関連する問題