ObjectIds не извлекаются из коллекции (Scala + MongoDB) - PullRequest
0 голосов
/ 18 февраля 2019

На моем компьютере есть экземпляр MongoDB с базой данных.В одной из коллекций есть пара документов, я вставил их вручную.Существует приложение Scala для управления базой данных.Существует класс дел с именем Location.

case class Location(_id: Option[ObjectId] = None, name: String) {
  var visible: Boolean = false
}

Это конфигурация MongoDB в приложении.

private val customCodecs = fromProviders(
  classOf[Location]
)
private val javaCodecs =
    fromCodecs(new LocalDateTimeDateCodec(), new LocalDateDateCodec())

private val codecRegistry =
  fromRegistries(customCodecs, javaCodecs, 
  DEFAULT_CODEC_REGISTRY)
val dbConnection = MongoClient(dbURI)

val database: MongoDatabase = dbConnection.getDatabase(dbName).withCodecRegistry(codecRegistry)

В customCodecs есть несколько определений classOf, только что удаленныхих.Строка dbURI извлекается из файла конфигурации.Существует конечная точка контроллера, которая возвращает все местоположения из базы данных.В результате получается:

[{"_id":{},"name":"Hungary","visible":false},{"_id":{},"name":"Germany","visible":false},{"_id":{},"name":"France","visible":false},{"_id":{},"name":"Switzerland","visible":false},{"_id":{},"name":"Poland","visible":false}]

Документы в базе данных имеют ObjectId, поскольку я ввел их вручную, а некоторые документы должны иметь свойство visibility true.Я подозреваю, что с сериализацией JSON что-то не так, но не могу понять, что именно.Это код, который запрашивает коллекцию.

val query = collection.find().toFuture()
Await.result(query, 10.seconds).toList

Метод службы вызывает этот код и передает результат контроллеру.

import org.json4s.native.Serialization.write
val languages = enrollmentService.getAllLanguages
    logger.info("GET all languages")
    Ok(Json.parse(write[List[Language]](languages)))

Я использую json4s для сериализации / десериализации JSON.

В чем здесь проблема?

1 Ответ

0 голосов
/ 18 февраля 2019

Возможно, вам нужно включить org.json4s.mongo.ObjectIdSerializer?

...