개발자 Q&A

개발하다 막혔다면? 여기서 질문하세요! 초보부터 고수까지, 함께 고민하고 해결하는 공간입니다. 누구나 자유롭게 질문하고 답변을 남겨보세요!

2025.08.02 12:40

MongoDBDriverManager::executeReadCommand 사용시 오류 발생

목록
  • 프론트마법사 18시간 전 2025.08.02 12:40 새글
  • 3
    1
제가 MongoDBDriverManager::executeReadCommand를 사용하여 데이터를 읽어오려고 하는데, 다음과 같은 오류가 발생합니다.

오류 메시지는 다음과 같습니다.


Exception in thread "main" org.springframework.data.mongodb.core.MongoException: Command failed with error 13: 'Unauthorized'



제가 사용한 코드는 다음과 같습니다.
java

MongoDatabaseFactory mongoDbFactory = new SimpleMongoDbFactory(mongoClient, "mydatabase");

MongoTemplate mongoTemplate = new MongoTemplate(mongoDbFactory);

String query = "{ "query" : { "name" : "John" } }";

String collectionName = "users";

DBObject command = new BasicDBObject("find", collectionName);

command.put("filter", query);

DBObject result = mongoTemplate.executeCommand(command);



이러한 오류는 어떻게 해결할 수 있는지 알려주세요.

    댓글목록

    profile_image
    나우호스팅  17시간 전



    MongoDBDriverManager::executeReadCommand를 사용하여 데이터를 읽어오려고 하는데, Unauthorized 오류가 발생하는 경우가 있습니다.

    이러한 오류는 MongoDB의 인증 문제로 인해 발생합니다. MongoDB에 대한 인증 정보가 없거나, 인증 정보가 잘못된 경우에 발생합니다.

    해결 방법은 다음과 같습니다.

    1. MongoDB에 대한 인증 정보를 설정합니다.
    - MongoDB의 사용자 이름과 비밀번호를 설정하고, MongoDB에 인증 정보를 등록합니다.
    - MongoDB의 인증 정보를 사용하여 MongoDBClient를 생성합니다.

    2. MongoDBClient를 사용하여 MongoDB에 연결합니다.
    - MongoDBClient를 사용하여 MongoDB에 연결하고, MongoDB에 대한 인증 정보를 전달합니다.

    3. MongoDBTemplate을 사용하여 데이터를 읽어옵니다.
    - MongoDBTemplate을 사용하여 데이터를 읽어오고, MongoDB의 인증 정보를 전달합니다.

    예를 들어, 다음과 같이 MongoDB의 인증 정보를 설정하고, MongoDBClient를 생성하여 MongoDB에 연결할 수 있습니다.

    #hostingforum.kr
    java
    
    // MongoDB의 인증 정보를 설정합니다.
    
    MongoCredential credential = MongoCredential.createCredential("username", "databaseName", "password".toCharArray());
    
    
    
    // MongoDBClient를 생성하여 MongoDB에 연결합니다.
    
    MongoClient mongoClient = MongoClients.create("mongodb://localhost:27017/?authSource=admin&readPreference=primary");
    
    
    
    // MongoDBTemplate을 사용하여 데이터를 읽어옵니다.
    
    MongoDatabaseFactory mongoDbFactory = new SimpleMongoDbFactory(mongoClient, "mydatabase");
    
    MongoTemplate mongoTemplate = new MongoTemplate(mongoDbFactory);
    
    
    
    String query = "{ "query" : { "name" : "John" } }";
    
    String collectionName = "users";
    
    DBObject command = new BasicDBObject("find", collectionName);
    
    command.put("filter", query);
    
    DBObject result = mongoTemplate.executeCommand(command);
    
    


    위의 코드를 사용하여 MongoDB의 인증 정보를 설정하고, MongoDBClient를 생성하여 MongoDB에 연결할 수 있습니다.

    2025-08-02 12:56

  • 개발자 Q&A 포인트 정책
      글쓰기
      50P
      댓글
      10P
  • 전체 41,014건 / 5 페이지

검색

게시물 검색