我正在尝试在我的 play2 应用程序中将一些嵌套调用与 reactivemongo 结合起来。我得到一个从createObjects
. 然后我遍历它们,检查对象是否存在于集合中,如果不存在则插入它们:
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”。所以我的问题是:我应该如何构建我的嵌套调用以获得我想要的结果并获取已插入哪些对象的信息?