【发布时间】:2016-02-24 14:51:24
【问题描述】:
我有一个使用 Play 和 ReactiveMongo 编写的应用程序,我想:
- 具有将
landingPage文档插入 MongoDB 的操作。 - 插入新的landingPage 并等待它插入。
- 统计新的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?
【问题讨论】:
标签: mongodb scala future reactivemongo