【问题标题】:MongoDb database connection using java and authentication with 3.0.0 versionMongoDb 数据库连接使用 java 和 3.0.0 版本的身份验证
【发布时间】:2015-11-19 04:23:25
【问题描述】:

我有 MongoConnectionUtils 这个文件 我在 mongo-java-driver 下有依赖

<dependency>
        <groupId>org.mongodb</groupId>
        <artifactId>mongo-java-driver</artifactId>
        <version>3.0.0</version>
    </dependency>


  public class MongoConnectionUtils {
                private static MongoDatabase db;
        public synchronized static MongoDatabase getConnection() {

            if (db != null) {
                return db;
            }
              try {
                String dbPath = Config.sharedInstance().value("db.path");
                String dbUsername =  Config.sharedInstance().value("db.username");
                String dbPassword =  Config.sharedInstance().value("db.password");

                int dbPort = Integer.parseInt( Config.sharedInstance().value("db.port"));
                String dbName =  Config.sharedInstance().value("db.name");
                MongoClient mongoClient = new MongoClient(dbPath, dbPort);
                    db=mongoClient.getDatabase(dbName);

            } catch (Throwable e) {

            }

            return db;
        }
    }

以前我使用的是 2.10 jar,但现在使用的是最新版本 发现 db.getDB() 是不推荐使用的方法,我发现 getDatabase() 代替方法。所以现在我想用用户名和 密码。但我没有找到 db.auth() 方法。请帮忙。

【问题讨论】:

标签: java mongodb mongodb-java mongo-java-driver database


【解决方案1】:

您可以使用带有身份验证信息的 mongodb 连接字符串创建 MongoClientURI,并将此 MongoClientURI 传递给 MongoClient 构造函数。

MongoClientURI uri = new MongoClientURI("mongodb://userId:password@hostName:port/dbName");
MongoClient mongoClient = new MongoClient(uri);
MongoDatabase db = mongoClient.getDatabase("yourdatabasename");
MongoCollection<Document> collection = db.getCollection("yourcollection");

更多信息请参考MongoDB java驱动API:

【讨论】:

  • 我应该使用哪个 DB 对象 DB (com.mongodb.DB) 或 MongoDatabase(com.mongodb.client.MongoDatabase) ,其中如果我写 DB 那么我需要使用 DB 对象来转换对象,例如这个 db=(DB) mongoClient.getDatabase(dbName);
  • 更新了我的答案,你可以使用 MongoDatabase 对象,从那里你可以得到 MongoCollection。
猜你喜欢
  • 2012-05-22
  • 1970-01-01
  • 2015-03-07
  • 1970-01-01
  • 2016-07-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-06-02
相关资源
最近更新 更多