如何查看写了多少文档并正确处理错误?

时间:2018-10-12 12:21:55

标签: scala playframework reactivemongo play-json reactivemongo-play-json

documentation可以看出,我应该能够使用WriteResult.okWriteResult.codeWriteResult.n来理解错误和更新文档的数量,但这不起作用。这是我正在做的示例(使用reactMongoDB / Play JSON集合插件):

   def updateOne(collName: String, id: BSONObjectID, q: Option[String] = None) = Action.async(parse.json) { implicit request: Request[JsValue] =>

     val doc = request.body.as[JsObject]
     val idQueryJso = Json.obj("_id" -> id)
     val query = q match {
         case Some(_) => idQueryJso.deepMerge(Json.parse(q.get).as[JsObject])
         case None => idQueryJso
     }

     mongoRepo.update(collName)(query, doc, manyBool = false).map(result => writeResultStatus(result))
   }

   def writeResultStatus(writeResult: WriteResult): Result = {

     // NOT WORKING
     if(writeResult.ok) {
       if(writeResult.n > 0) Accepted else NotModified
     } else BadRequest

   }

1 个答案:

答案 0 :(得分:0)

我可以在这里给出替代方法吗?您说:

  

“为了了解错误和更新的文档数量,但这不起作用”

为什么不使用Play提供的日志记录功能?总体思路是:

  1. 您设置日志记录级别(例如,仅警告和错误,或错误等)。
  2. 在任何情况下,您都可以使用log来输出一条消息,无论是可以,还是不能。
  3. 播放会在您的应用程序运行时保存日志。
  4. 维护者/开发者可以查看日志以检查是否存在任何错误。

这种方法在将来很有可能:您可以将日志保存到第三方服务中,并将监视功能放在其顶部。

现在,如果我们看一下文档here,您会看到关于different log levelshow to use the logger的信息。