
MongoDBDriverWriteResult::getUpsertedIds 메소드는 업셋된 ID를 반환할 때 null이 아닌 컬렉션 ID와 필드 이름을 포함하는 Map을 반환합니다.
업셋된 ID가 없을 때 null을 반환하는 것이 아닙니다.
업셋된 ID가 없을 때, 메소드는 비어있는 Map을 반환합니다.
이 메소드는 업셋된 ID가 없을 때 비어있는 Map을 반환하는 것이 정상적인 동작입니다.
업셋된 ID가 없을 때 null을 반환하는 것처럼 보이는 이유는, Map이 비어있기 때문입니다.
Map은 비어있을 때 null과 같은 효과를 나타낼 수 있습니다.
따라서, 업셋된 ID가 없을 때 null을 반환하는 것처럼 보이는 것은 실제로 Map이 비어있는 것입니다.
이 문제를 해결하려면, 메소드가 반환하는 Map을 null이 아닌 비어있는 Map으로 처리해야 합니다.
예를 들어, 다음과 같이 처리할 수 있습니다.
#hostingforum.kr
java
List upsertedIds = writeResult.getUpsertedIds().keySet().stream()
.map(ObjectId::new)
.collect(Collectors.toList());
이 코드는 Map에서 컬렉션 ID와 필드 이름을 추출하여 ObjectId로 변환한 후 List로 반환합니다.
이렇게 처리하면, 업셋된 ID가 없을 때 null이 아닌 비어있는 List을 반환할 수 있습니다.
2025-07-13 10:02