使用ReactiveMongo插入后获取ID

绿色的爬山虎

我正在使用akka-http和ReactiveMongo编写Web服务。我遇到了问题,我无法自己解决。

我有方法

 def saveRoute(route: Route)(implicit writer: BSONDocumentWriter[Route]): Future[WriteResult] = {
    collection.insert(route)
  }

问题是WriteResult除错误或正常状态外不包含任何有用的信息。

您能否解释一下插入后如何获取插入的对象ID。我发现的所有示例都LastError与Play或Play的旧版本有关框架。

绿色的爬山虎

我设法通过从save方法返回元组来获取ID或任何其他字段,甚至整个对象。

def saveRoute(route: Route)(implicit writer: BSONDocumentWriter[Route]) = {
    collection.insert(route).map((_, route))
  }

我复制Route实体并在调用之前分配创始IDsaveRoute

route.copy(id = Some(BSONObjectID.generate().stringify))

这种方法允许我同时获取WriteResult和保存的实体

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章