3

我似乎找不到在 Heroku 上使用 Play Framework 设置 MongoHQ 或 MongoLab 的任何说明。

有没有类似于我可以遵循的 Spring 框架(我相信) https://devcenter.heroku.com/articles/mongohq#use-with-java的东西?

或者有没有人可以提供任何指示。

4

2 回答 2

7

MongoHQ 将 MONGOHQ_URL 添加到您的 Heroku 配置环境

heroku config

返回类似的东西

MONGOHQ_URL: mongodb://heroku:1234@someserver.mongohq.com:10071/app1234

在应用程序中使用这个环境变量来获取连接 Mongo 的 URI。我有一个可以在 Procfile 中指定的覆盖属性

web: target/start -Dhttp.port=$PORT -Dmongodb.uri=$MONGOHQ_URL

在 Play 模型类中,我连接并查询 Mongo:

val mongoUri = MongoUri(Play.configuration.getString("mongodb.uri").get)

val mongoCollection = mongoUri.connectDB match {
  case Left(thrown) => throw thrown
  case Right(database) => {
    mongoUri.username.map { username =>
      mongoUri.password.map { password =>
        database.underlying.authenticate(username,password)
      }
    }
    database.apply("mycollection")
  }
}

def findSomething(something:String) = {
  val searchTerm = MongoDBObject("something" -> something)
  mongoCollection.findOne(searchTerm) map { mongoObject =>
    Logger.info("Found %s".format(mongoObject.getAs[String]("somethingElse")))
  }
}

做出的假设:Play 2.0、Scala、Casbah

于 2012-12-19T20:50:07.460 回答
3

这是一个使用 MongoHQ、Play 2、Scala 并在 Heroku 上运行的示例应用程序: https ://github.com/jamesward/play2bars/tree/scala-mongodb

没有真正的说明,只是一些简单的代码。

于 2012-09-11T13:30:15.510 回答