我正在尝试创建一个通用的 mongo 连接组件,它将与不同的 mongo 数据库实例一起使用。我设法使它与一些代码一起工作,例如:
// Creating a Mongo client
MongoClient mongo = new MongoClient( "localhost" , 27017 );
// Creating Credentials
MongoCredential credential;
credential = MongoCredential.createCredential("sampleUser", "myDb",
"password".toCharArray());
System.out.println("Connected to the database successfully");
// Accessing the database
MongoDatabase database = mongo.getDatabase("myDb");
System.out.println("Credentials ::"+ credential);
我不明白为什么它需要在 2 个地方指定数据库:"myDb"
一次在凭证中,一次在它执行getDatabase
. 不仅如此,在我的设置中,我还需要在createCredential
“admin”上指定一个不同的数据库才能工作。为什么凭据数据库与我将运行查询的数据库不同?