Здесь ниже код для обновления документа с FindAndModify
Mongo в:ReactiveMongo: Как конвертировать BSON возвращенного FindAndModify в JSON
val selector = BSONDocument("id" -> "1234")
val modifier = BSONDocument("$set" -> BSONDocument("email" -> "[email protected]"))
ReactiveMongoPlugin.db.command(FindAndModify(
collection.name,
selector,
Update(modifier, false),
false,
None
)).transform(
success => success.map { s =>
// doesn't work...
Json.fromJson[Seq[JsValue]](toJson(s)).map(for (item <- _) yield item).get
}.getOrElse(List[JsValue]()),
failure => failure match {
case e: LastError => DaoServiceException(e.message, Some(DATABASE_ERROR))
}
)
В success
блоке я пытаюсь преобразовать возвращенные BSONDocument
коллекцию в JsValue
... но это не работает, и полученная в результате коллекция JsValue
всегда пуста (я проверил коллекцию BSONDocument
, возвращенную командой, и я подтверждаю, что она не пуста). Я что-то упускаю?
Возможно, попробуйте использовать [BSON Обработчик implicits] (https://github.com/ReactiveMongo/Play-ReactiveMongo/blob/master/src/main /scala/play/modules/reactivemongo/bsonhandlers.scala) из Play-ReactiveMongo для преобразования из 'BSONDocument' в' JsObject'? Я предполагаю, что это лучший способ сделать это. – millhouse