java - 如何从 MongoClient, Java 获取连接字符串中指定的 Mongo 数据库

标签 java mongodb

我已经在连接字符串中指定了要连接的数据库,所以我希望不用硬编码就可以得到数据库实例。

但是mongoDbClient.getDatabase方法需要数据库名作为参数。有什么简单的方法可以做到这一点吗?

MongoClient mongoClient = new MongoClientURI(DispatcherConfigHolder.config.getMongoUrl());//I will put the uri in a config file so that I can change the db easily
MongoDatabase db = ...//need a MongoDataBase here
MongoCollection collection = db.getCollection("device");//so that I can access the collection from it

最佳答案

随着modern API ,你可以使用:

String uri = "mongodb+srv://...";
String databaseName = new ConnectionString(uri).getDatabase();
Database database = mongoClient.getDatabase(databaseName);

关于java - 如何从 MongoClient, Java 获取连接字符串中指定的 Mongo 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48162917/

相关文章:

java - 在 BeanIO 中使用带注释的类而不是 XML 进行映射

node.js - Mongodb 初始连接池保持打开状态?

node.js - NodeJS、Mongoose - findOneAndUpdate 无法从服务器工作

java - 将 Redis ByteString 转换为 BasicDBObject

java - 迭代 int 数组

java - 从 Bazel 中调用 Checkstyle 的最佳方式是什么?

java - 如何从正在运行的进程中获取直接输出?

java - 使用 Spark 框架发送帖子

javascript - 无法使用 Express-validator 验证用户输入

MongoDB + Mongo-Express docker-compose 导致 MongoError : Authentication failed