Для выполнения команды find вам необходимо сначала пройти аутентификацию с помощью mongo.Пример того, как вы можете выполнять аутентификацию:
Mongo mongo = new Mongo("localhost", 27017);
DB db = mongo.getDB("testdb");
boolean auth = db.authenticate("testdb", "password".toCharArray());
if (auth) {
DBCollection table = db.getCollection("user");
BasicDBObject document = new BasicDBObject();
document.put("name", "mkyong");
table.insert(document);
System.out.println("Login is successful!");
} else {
System.out.println("Login is failed!");
}
Это должно работать для вас.
Вы можете проверить пример кода в этой статье: https://www.mkyong.com/mongodb/java-authentication-access-to-mongodb/
При использовании mongo-java-driver было бы целесообразно следующее: - обратите внимание, что этот метод больше не используется как устаревший,но для параметра writeconcern установлено значение Journaled (что рекомендуется)
String username = "test";
String database = "something";
String password = "secret";
MongoCredential mongoCredential = MongoCredential.createCredential(username, database, password.toCharArray());
MongoClientOptions options = MongoClientOptions.builder()
.writeConcern(WriteConcern.JOURNALED).build();
MongoClient mongoClient = new MongoClient(new ServerAddress("host1", 27017), Arrays.asList(mongoCredential), options);