0
我正在玩游戏2.3,我想在插入到另一个集合时更新集合。下面是抛出错误的代码。类型不匹配问题
def create(message : MessageThread) : Future[reactivemongo.core.commands.LastError] = {
collectionThread.insert(message.copy(
createDate = Some(new DateTime()),
updateDate = Some(new DateTime())
))
}
def updateMessage(messageId : JsValue) : Future[reactivemongo.core.commands.LastError] = {
collection.update(Json.obj("_id" -> (Json.obj("$oid" -> messageId))),
Json.obj("$set" -> Json.obj("isRead" -> false,
"lastRepliedDate" -> Some(new DateTime()))))
}
def createThread = Action.async(parse.json) { request =>
request.body.validate[MessageThread].flatMap { message =>
create(message).flatMap { created =>
updateMessage(request.body \ "messageId").flatMap{ updated =>
Created
}
}
}.getOrElse(Future.successful(BadRequest("invalid json")))
}
我打电话给update并从createThread创建。我不能发送结果返回
错误如下
type mismatch;
found : controllers.Messages.Status
required: scala.concurrent.Future[?]
正如我还是早与学习scala
。任何帮助将不胜感激。
它还没有工作。现在扔 类型不匹配; 找到:scala.concurrent.Future [controllers.Messages.Status] 必需:play.api.libs.json.JsResult [?] –
您需要用JSON响应。我建议你完全自上而下地阅读游戏文档,如果你没有时间尝试在这里找出它:https://www.playframework.com/documentation/2.3.x/ScalaJsonHttp – lambdista