scala - 如何查看已写入的文档数量并正确处理错误?
问题描述
从文档中我可以看到我应该能够使用WriteResult.ok
,WriteResult.code
并且WriteResult.n
为了了解错误和更新文档的数量,但这不起作用。这是我正在做的一个示例(使用 reactiveMongoDB/Play JSON Collection Plugin):
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
}
解决方案
推荐阅读
- git - 关闭编辑器窗口后如何修复 git commit 错误?
- python-3.x - 更改熊猫数据框中的列值
- aws-lambda - AWS Lambda:定价取决于分配的内存还是函数运行时内存?
- java - 使用静态字段扩展类以“覆盖”静态属性
- java - 单元测试处理数据库记录的函数
- c# - 无法映射到原始类型的“System.Data.Entity.Spatial.DbGeography”的属性类型
- javascript - 如何从 Map 对象中获取嵌套值?
- listview - Flutter:屏幕打开时自动滚动到底部
- amazon-web-services - 无法将数据从 AWS Kinesis 存档到 Glacier
- python - 3D-高斯过程回归