sql >> Database >  >> NoSQL >> MongoDB

Mijn PlayFramework-actie keert terug voordat een toekomst klaar is, hoe werk ik een webpagina-component bij?

Action is niet ontworpen om met futures te werken. Gebruik Action.async , die zal "wachten" (technisch gezien niet wachten, maar plannen) tot de toekomst klaar is:

def rect(swLon: Float, swLat: Float, neLon: Float, neLat: Float) = Action.async {
  val sb = new StringBuilder()
  sb.append("<tt>boundingBox: swLon=" + swLon + ", swLat=" + swLat + ", neLon=" + neLon + ", neLat=" + neLat + "</tt>")
  if (oDb.isDefined) {
    val collection: MongoCollection[Document] = oDb.get.getCollection(collectionName)
    val fut = getFutureOne(collection) // returns a Future[Seq[Document]]
    fut.map {docs => 
      setMongoJson(doc.toJson)
      Ok(sb.toString)
    } recover {
      case e => BadRequest("FAIL: " + e.getMessage)
    }
  } else Future.successful(Ok("Not defined"))
}

Bekijk dit ter referentie:https://www.playframework.com/documentation /2.4.x/ScalaAsync




  1. De importmodi van mongoimport

  2. MongoDB &Mongoose hebben toegang tot de ene database terwijl ze authenticeren tegen een andere (NodeJS, Mongoose)

  3. SSL-connectiviteit met Redis met StackExchange.Redis

  4. MongoDB-verzoeken volgen vanuit een consoletoepassing