개발자 Q&A

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

2025.05.27 05:35

MongoDBDriverWriteResult::getUpsertedCount에 대한 질문

목록
  • 배포요정 4일 전 2025.05.27 05:35
  • 8
    1
제가 MongoDBDriverWriteResult::getUpsertedCount를 사용하여 업서트된 문서의 개수를 가져하려고 하는데, 이 메서드의 반환값이 0이 되는 상황이 발생합니다.

업서트된 문서가 존재하지 않아도 0이 아닌 다른 값을 반환하는 이유를 알고 싶습니다.

또한, 업서트된 문서가 여러 개가 존재하는 상황에서 getUpsertedCount를 사용하여 업서트된 문서의 개수를 가져오려면 어떻게 해야 하는지 알고 싶습니다.

다음은 예시 코드입니다.

java

MongoCollection collection = db.getCollection("example");



Document document = new Document("name", "John")

        .append("age", 30);



WriteResult result = collection.insertOne(document);

int count = result.getUpsertedCount();



System.out.println(count);



위 코드에서 getUpsertedCount를 사용하여 업서트된 문서의 개수를 가져오고 싶습니다.

    댓글목록

    profile_image
    나우호스팅  4일 전



    MongoDBDriverWriteResult::getUpsertedCount 메서드는 업서트된 문서의 개수를 반환합니다. 하지만 업서트된 문서가 존재하지 않아도 0이 아닌 다른 값을 반환할 수 있습니다.

    이유는 MongoDB의 업서트 기능이 업서트된 문서의 개수보다 더 많은 문서를 업데이트할 수 있기 때문입니다. 예를 들어, 업서트된 문서가 존재하지 않더라도 업데이트된 문서의 개수가 1개 이상일 수 있습니다.

    업서트된 문서가 여러 개가 존재하는 상황에서 getUpsertedCount를 사용하여 업서트된 문서의 개수를 가져오려면, MongoDB 3.6 버전 이상에서 사용할 수 있는 `getUpsertedIds()` 메서드를 사용할 수 있습니다. 이 메서드는 업서트된 문서의 ID를 반환합니다.

    다음은 예시 코드입니다.

    #hostingforum.kr
    java
    
    MongoCollection collection = db.getCollection("example");
    
    
    
    Document document = new Document("name", "John")
    
            .append("age", 30);
    
    
    
    WriteResult result = collection.insertOne(document);
    
    List upsertedIds = result.getUpsertedIds();
    
    
    
    System.out.println(upsertedIds.size());
    
    


    위 코드에서 getUpsertedIds() 메서드를 사용하여 업서트된 문서의 개수를 가져올 수 있습니다.

    2025-05-27 05:36

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

검색

게시물 검색