
오류가 발생하는 이유는 MongoDBDriverManager::executeQuery 메서드가 기본적으로 read preference를 사용하지 않기 때문입니다. read preference를 설정하지 않으면 MongoDB 서버가 선택되지 않아 오류가 발생합니다.
read preference를 설정하여 오류를 해결할 수 있습니다. 예를 들어, read preference를 PRIMARY로 설정하여 오류를 해결할 수 있습니다.
#hostingforum.kr
java
MongoClientSettings settings = MongoClientSettings.builder()
.applyConnectionString(MongoClientURI.fromConnectionString("mongodb://localhost:27017/"))
.build();
MongoClient mongoClient = MongoClients.create(settings);
MongoDatabase mongoDatabase = mongoClient.getDatabase("myDatabase");
MongoCollection mongoCollection = mongoDatabase.getCollection("myCollection");
MongoQueryOptions queryOptions = new MongoQueryOptions();
queryOptions.setMaxTime(Duration.ofMillis(1000));
queryOptions.readPreference(MongoReadPreference.primary());
FindIterable findIterable = mongoCollection.find(queryOptions);
또는 MongoDBDriverManager::executeQuery 메서드에 read preference를 직접 전달할 수 있습니다.
#hostingforum.kr
java
MongoDBDriverManager mongoDBDriverManager = MongoDBDriverManager.create();
MongoDatabase mongoDatabase = mongoDBDriverManager.getDatabase("myDatabase");
MongoCollection mongoCollection = mongoDatabase.getCollection("myCollection");
MongoQueryOptions queryOptions = new MongoQueryOptions();
queryOptions.setMaxTime(Duration.ofMillis(1000));
queryOptions.readPreference(MongoReadPreference.primary());
FindIterable findIterable = mongoCollection.find(queryOptions);
2025-06-28 23:19