Scala Reactivemongo getAsTry不是PasswordInfo的成员
我正在做一个将play剪影与reactivemongo集成的项目 当我编译我的项目时,会出现如下错误: [错误]/reactivemongo-screet-rest/app/models/daos/PasswordInfoDAO.scala:83:value-getAsTry不是com.mohiva.play.screet.api.util.PasswordInfo的成员 [错误]未来(一些(fullDoc.getAstrySonString.get)) mi方法如下:Scala Reactivemongo getAsTry不是PasswordInfo的成员,scala,playframework,reactivemongo,Scala,Playframework,Reactivemongo,我正在做一个将play剪影与reactivemongo集成的项目 当我编译我的项目时,会出现如下错误: [错误]/reactivemongo-screet-rest/app/models/daos/PasswordInfoDAO.scala:83:value-getAsTry不是com.mohiva.play.screet.api.util.PasswordInfo的成员 [错误]未来(一些(fullDoc.getAstrySonString.get)) mi方法如下: def find(l
def find(loginInfo: LoginInfo) = {
implicit val userFormat = Macros.handler[PasswordInfo]
val collection = db[BSONCollection]("PasswordInfo")
val query = BSONDocument(
"loginInfo" -> BSONDocument(
"loginInfo" -> loginInfo.providerID,
"loginInfo" -> loginInfo.providerKey
)
)
val passwordInfo: Future[Option[PasswordInfo]] = collection.find( query ).one[PasswordInfo]
passwordInfo.flatMap {
case None =>
Future.successful(Option.empty[PasswordInfo])
case Some(fullDoc) =>
Future(Some(fullDoc.getAsTry[PasswordInfo]("authInfo").get))
}
//Future.successful(data.get(loginInfo))
}
完整版本如下:
密码信息如下:
有人能告诉我我做错了什么或我错过了什么吗
github上的存储库如下所示:
因此,当您在passwordInfo上获得模式匹配时,它不再是一个BSONDocument,因为调用了一个BSONDocument。PasswordInfo类型的userFormat为方法1提供隐式读取器,并将Future[选项[PasswordInfo]]返回给val PasswordInfo 这就是出现错误的原因: [错误]/reactivemongo剪影rest/app/models/daos/PasswordInfoDAO.scala:83:value getAsTry不是com.mohiva.play.screet.api.util.PasswordInfo的成员[错误] 因为您已经有了类型[PasswordInfo],而它不是像定义了getAsTry的BSONDocument那样的ReactiveMongo类型 我不能完全确定你的回报类型,但希望这有帮助
这有帮助吗?如果您还有任何问题,请告诉我