【发布时间】:2023-03-08 08:34:01
【问题描述】:
下面是使用 Mongo 的 FindAndModify 更新文档的代码:
val selector = BSONDocument("id" -> "1234")
val modifier = BSONDocument("$set" -> BSONDocument("email" -> "new@domain.com"))
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 集合,我确认它是非空)。我错过了什么吗?
【问题讨论】:
-
也许尝试使用 Play-ReactiveMongo 中的BSON Handler implicits 将
BSONDocument转换为JsObject?我想他们将是做到这一点的最佳方式。
标签: mongodb scala reactivemongo