Paging & Sorting
일반 find paging, reactive PageStream, aggregation page와 ordered SortSpec을 목적에 맞게 사용합니다.
일반 find paging
pageNumber는 0-based입니다. paging().pageNumber(...).pageSize(...).and() 형태의 nested builder도 사용할 수 있습니다.
PageStream
대량 처리에서 data를 즉시 List로 모으고 싶지 않다면 PageStream을 사용합니다. 필요하면 collectToPageResult()로 PageResult<T>로 변환할 수 있습니다.
Aggregation paging
executeAggregation()은 reactive page data를 최종 List로 collect해 PageResult<T>를 만듭니다. stream 상태가 중요하면 executeAggregationPageStream()을 사용합니다.
SortSpec
정렬 key는 추가한 순서를 그대로 유지합니다. 동적 direction은 sort.of(direction, field)를 사용할 수 있고 Driver-native sort는 driver(Bson)으로 섞을 수 있습니다.