Result Types
Reactive Mongo DSL의 Flux/Mono terminal과 PageResult, PageStream, ResultTuple 결과 타입을 정리합니다.
Terminal 기본 반환 형태
findAll / Search findAll / Vector findAll
Flux<E>
find / Search find / Vector find
Mono<E>
count
Mono<Long>
exists / existsQuery
Mono<Boolean>
distinct
Flux<R>; 필요할 때 호출 측에서 collectList()
PageResult<T>
getData()
현재 page의 List<T>
getTotalCount()
전체 matching count
map / mapNotNull / filter / filterNotNull
totalCount를 유지하면서 현재 page data를 변환
size / isEmpty
현재 page data 기준 helper
totalPages / hasNext
totalCount와 page size를 이용한 페이지 계산 helper
PageStream<T>
data()
현재 page data Flux<T>
totalCount()
전체 count Mono<Long>
map / mapNotNull / filter / filterNotNull / onEach
totalCount publisher를 유지한 reactive data 변환
size() / isEmpty() / totalPages() / hasNext()
Mono 기반 reactive page helper
collectToPageResult()
data Flux를 List로 모아 Mono<PageResult<T>>로 변환
ResultTuple<L, R>
getLeftName() / getLeft()
왼쪽 query builder 이름과 결과
getRightName() / getRight()
오른쪽 query builder 이름과 lookup/group 결과
getTotalCount()
해당 tuple에 선택적으로 연결된 totalCount
getRightIfListFirst()
right가 List면 첫 요소를 반환하며 null 또는 빈 List이면 null