我正在学习如何一起使用Scala,MongoDB和Play框架,我一直在寻找一个位于此处的演示项目:https://github.com/jonasanso/play-reactive-mongo-db
但是,我不理解create()
方法中的语法。是否有其他方法可以在不使用关键字yield
的情况下编写它?我还在学习Scala,我不明白这种方法是如何工作的。
def create(name: String, population: Int) = Action.async {
for {
cities <- citiesFuture
lastError <- cities.insert(City(name, population))
} yield
Ok("Mongo LastError: %s".format(lastError))
}
答案 0 :(得分:0)
如果您不想使用for-yield语法,可以将代码翻译为等效代码:
citiesFuture
.flatMap (cities => cities.insert(City(name, population))
.map (lastError => Ok(s"Mongo LastError: $lastError"))