Как прочитать примитивный тип из базы данных с помощью ReactiveMongo?
Следующий фрагмент кода:
def getInitState(): Future[String] = states.flatMap {
_.find(
selector = Json.obj("init" -> true),
projection = Some(Json.obj("name" -> 1))
).requireOne[String]
}
вызывает ошибку компиляции:could not find implicit value for parameter reader: reactivemongo.api.bson.BSONDocumentReader[String]
указывая на[String]
тип параметраrequireOne
. Вероятно, следует отметить, что я использую модуль ReactiveMongo Play и reactivemongo-play-json-compat, оба версии 1.1.0-play28-RC11. Первый вопрос: может ли ReactiveMongo возвращать примитивные типы из запросов? Если да, то как мне это сделать?
Использование объектов Play Json в качестве параметров вfind
также выдает предупреждения типаvalue jsObjectWrites in trait LowPriorityPackageCompat is deprecated
. Рассматриваемое значение выглядит следующим образом:
private[json] trait LowPriorityPackageCompat {
@deprecated("Will be removed when provided by Play-JSON itself", "0.20.6")
implicit final val jsObjectWrites: OWrites[JsObject] =
OWrites[JsObject](identity)
}
и я не использую его напрямую, поэтому думаю, что разработчикам ReactiveMongo следует беспокоиться об этом. Второй вопрос: прав ли я? Если нет, то объясните, как это исправить.
Кроме того, меня очень расстраивает качество официального документа ReactiveMongo. Третий вопрос: есть ли лучший документ?