使用Scala的ReactiveMongo驱动程序将对象插入Mongo数据库

时间:2016-10-03 22:02:45

标签: mongodb scala playframework play-reactivemongo

我正在学习如何一起使用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))
  }

1 个答案:

答案 0 :(得分:0)

如果您不想使用for-yield语法,可以将代码翻译为等效代码:

citiesFuture
  .flatMap (cities => cities.insert(City(name, population))
  .map (lastError => Ok(s"Mongo LastError: $lastError"))