
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