我正在嘗試在我的play2應用程序中將一些嵌套調用與reactivemongo結合起來。 我收到從createObjects
返回的對象列表。我然後循環就過去了,檢查對象的集合中存在,如果不將其插入:我應該如何構建我的play2應用程序中嵌套的reactivemongo調用?
def dostuff() = Action {
implicit request =>
form.bindFromRequest.fold(
errors => BadRequest(views.html.invite(errors)),
form => {
val objectsReadyForSave = createObjects(form.companyId, form.companyName, sms_pattern.findAllIn(form.phoneNumbers).toSet)
Async {
for(object <- objectsReadyForSave) {
collection.find(BSONDocument("cId" -> object.get.cId,"userId" ->
object.userId.get)).cursor.headOption.map { maybeFound =>
maybeFound.map { found =>
Logger.info("Found record, do not insert")
} getOrElse {
collection.insert(object)
}
}
}
Future(Ok(views.html.invite(form)))
}
})
}
我覺得這樣也沒有那麼好,因爲它可以,感覺不是「play2」和「reactivemongo」 。 所以我的問題是:我應該如何構建我的嵌套調用來獲得我想要的結果 並獲取已插入哪些對象的信息?
很好的回答!這正是我期待的! – jakob