У меня есть приложение, написанное с помощью Play и ReactiveMongo, где я хочу:
- Создайте действие, которое вставляет
landingPage
документ в MongoDB. - Вставьте новую целевую страницу и дождитесь ее вставки.
- Подсчитайте новое общее количество документов LandingPage и верните его пользователю.
У меня есть этот рабочий код:
// Insert the landing page and wait for it to be inserted, so we can then get the new count of landing pages.
val futures = for {
wr <- landingPagesCollection.insert(landingPage)
count <- landingPagesCollection.count()
} yield count
futures.map { (count: Int) =>
Created(Json.obj(
"created" -> true,
"landingPage" -> landingPage.toJson,
"count" -> count
))
}
Этот код работает нормально. Однако из любопытства я хочу знать, как получить доступ к значению wr
(WriteResult). Когда я изменил код на:
val futures = for {
wr <- landingPagesCollection.insert(landingPage)
count <- landingPagesCollection.count()
} yield (wr, count)
futures.map { (wr: WriteResult, count: Int) =>
Created(Json.obj(
"created" -> true,
"message" -> s"You created landing page ${landingPage.name} (${landingPage.jobNumber}). The Git URI is '${landingPage.gitUri}'.",
"landingPage" -> landingPage.toJson,
"count" -> count,
"writeResult" -> wr
))
}
Я получаю следующие сообщения об ошибках:
Кто-нибудь может объяснить, как получить доступ к wr
в функции карты?