我似乎找不到在 Heroku 上使用 Play Framework 设置 MongoHQ 或 MongoLab 的任何说明。
有没有类似于我可以遵循的 Spring 框架(我相信) https://devcenter.heroku.com/articles/mongohq#use-with-java的东西?
或者有没有人可以提供任何指示。
我似乎找不到在 Heroku 上使用 Play Framework 设置 MongoHQ 或 MongoLab 的任何说明。
有没有类似于我可以遵循的 Spring 框架(我相信) https://devcenter.heroku.com/articles/mongohq#use-with-java的东西?
或者有没有人可以提供任何指示。
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
这是一个使用 MongoHQ、Play 2、Scala 并在 Heroku 上运行的示例应用程序: https ://github.com/jamesward/play2bars/tree/scala-mongodb
没有真正的说明,只是一些简单的代码。