使用反应式 mongo 和播放框架查找

find with reactive mongo and play framework

我想使用播放框架的 ReactiveMongo 驱动程序通过来自 MongoDB 的邮件检索用户数据,但它 returns:Future(<not completed>)

这是我的代码:

def findBymail(email: String) = {
  val query = Json.obj("mail" -> email)
  val resul = collection.flatMap(_.find(query).one[Users])
  Logger.warn(s"result found: $res") 
}

ReactiveMongo 中的所有操作都是异步的,它总是 returns Future,因此您可以使用

打印结果
collection.flatMap(_.find(query).one[Users]).map{ u => Logger.warn(s"result found: $res")

我想这可能不是你想要的,你也可以 return Future,然后处理结果,

def findBymail(email: String) = {
  val query = Json.obj("mail" -> email)
  collection.flatMap(_.find(query).one[Users]).map{ user =>
      Logger.warn(s"result found: $user") 
      user
  }
}

您可以将结果处理为:

findBymail("....").map{ user =>
    ......
}