有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

mongodb Java如何从MongoDatabase类中获取DB对象作为MongoClient。getDB(dbName)已被弃用

以下是旧代码:

String uri = "mongodb://" + dbUser + ":" + dbPass + "@" + servers + "/"+dbName+ "?ssl=true&authSource=admin&connectTimeoutMS=6000&socketTimeoutMS=6000";  
MongoClientURI uriObj = new MongoClientURI(uri);            
MongoClient client = new MongoClient(uriObj);

DB db = client.getDB(dbName);  ==> deprecated  

自从MongoClient。getDB(dbName)已被弃用,以下是新代码:

String uri = "mongodb://" + dbUser + ":" + dbPass + "@" + servers + "/"+dbName+ "?ssl=true&authSource=admin&connectTimeoutMS=6000&socketTimeoutMS=6000";  
MongoClientURI uriObj = new MongoClientURI(uri);            
MongoClient client = new MongoClient(uriObj);

MongoDatabase database = client.getDatabase(dbName);  ==> How to get DB db?

如何从新代码中获取DB对象(在旧代码中为DB DB)


共 (1) 个答案

  1. # 1 楼答案

    您的代码DB db = mongoClient.getDB(dbName);正是针对mongodb java驱动程序版本,如2.14.22.13.3。下面是更新的,因为3.0.43.7.1


    如文件中所述:

    Use MongoClients.create(), or MongoClient() for the legacy MongoClient API, to make a connection to a running MongoDB instance.

    up to version 3.7(遗留MongoClient API),您可以使用连接字符串和getDatabase()方法to access a database如下:

    MongoClient mongoClient = new MongoClient(new MongoClientURI("mongodb://user1:pwd1@host1/?authSource=db1&ssl=true"));
    MongoDatabase database = mongoClient.getDatabase("db_name");
    

    或者按照同样的逻辑:

    MongoClientURI uri = new MongoClientURI("mongodb://user1:pwd1@host1/?authSource=db1&ssl=true");
    MongoClient mongoClient = new MongoClient(uri);
    MongoDatabase database = mongoClient.getDatabase("db_name");
    

    New MongoClient APIsince 3.7

    To make a connection对于正在运行的MongoDB实例和to access a database,您可以使用:

    MongoClient mongoClient = MongoClients.create("mongodb://user1:pwd1@host1/?authSource=db1&ssl=true");
    MongoDatabase database = mongoClient.getDatabase("db_name");
    

    Specify the name of the database to the getDatabase() method. If a database does not exist, MongoDB creates the database when you first store data for that database.