如何使用OpenShift中的JAVA连接到MongoDB服务器?

时间:2015-05-08 16:39:11

标签: java mongodb openshift robo3t

我在MongoDB中创建了OpenShift个实例。我可以通过RockMongo连接到OpenShift,这是JAVA提供的服务。

我尝试使用Connection refuesed连接到我的实例,但我收到RoboMongo错误。此外,我无法使用RockMongo连接它。

在我的Host: 127.11.201.2 Port: 27017 状态标签中,我看到以下信息:

RoboMongo

MongoLabOpenShift实例一起使用可以很好地为其提供正确的凭据,但在JAVA处,它无法连接到实例。

在我的MongoCredential credential = MongoCredential.createCredential( Const.MONGO_USERNAME, Cont.MONGO_DB, Const.MONGO_PASSWORD.toCharArray()); mongo = new MongoClient(new ServerAddress(Const.MONGO_URI), Arrays.asList(credential)); 应用中,我尝试以下操作:

127.11.201.2

MONGO_URIputty。 为什么我无法连接到我的实例?我做错了什么?

P.S使用mongo我只需执行命令mongo即可连接到 $("#producturl").suggest(ajaxurl + "?action=fetch_ajax_products_list" , { delay: 50, minchars: 1,onSelect: function() { do_something(this.value); } }); 实例。

1 个答案:

答案 0 :(得分:3)

OpenShift provides environment variables,您应该用它来连接MongoDB。

  • OPENSHIFT_MONGODB_DB_PORT MongoDB IP地址
  • OPENSHIFT_MONGODB_DB_USERNAME MongoDB端口
  • OPENSHIFT_MONGODB_DB_PASSWORD MongoDB用户名
  • OPENSHIFT_MONGODB_DB_URL MongoDB密码
  • mongodb://<username>:<password>@<hostname>:<port>/ MongoDB连接网址(例如new MongoClient(new MongoClientURI(System.getenv("OPENSHIFT_MONGODB_DB_URL")));

我正在使用一行代码连接到数据库:

#include <iostream>
#include <list>
#include <iterator>

int main() {
    std::list<int> nums = {{0, 1, 2, 3, 4, 5}};
    auto begin = nums.begin();
    auto iterator = nums.begin();
    auto end = nums.end();
    auto loop_times = 100;

    while (--loop_times) {
      while (iterator != end) {
        std::cout << *iterator++;
      }
      iterator--;
      while (iterator != begin) {
        std::cout<< *--iterator;
      }
      iterator++;
    }
}