Query Flow
대상 타입을 고르고, 조건 tree를 닫은 뒤 terminal operation을 선택합니다.
1. 실행 컨텍스트 선택
executeEntity(Class<E>, key)
@Document entity class를 직접 지정하는 가장 일반적인 진입점입니다.
executeRepository(key, repositoryClass)
ReactiveCrudRepository의 generic entity type을 해석합니다.
executeCustomClass(Class<E>, key, collection)
특정 collection을 projection 또는 custom class로 매핑합니다.
2. 조건 구성
NewsService.java
java3. terminal 선택
findAll()
여러 문서를 Flux<E> 또는 page wrapper로 조회합니다.
find()
단일 결과를 Mono<E>로 조회합니다. executeFirst()는 정렬 후 첫 결과에 적합합니다.
count() / exists()
동일 criteria를 count 또는 존재 여부로 실행합니다.
delete()
criteria에 일치하는 문서를 삭제합니다.
atomicUpdate()
동일 criteria를 기반으로 document 또는 pipeline update를 실행합니다.
Search builder는 end()를 거치지 않음
Atlas의 $search와 MongoDB의 $vectorSearch는 aggregation 첫 stage여야 하므로 일반 fields().end() terminal 흐름과 분리되어 있습니다. search() 또는 vectorSearch()에서 시작한 뒤 필요한 post-filter와 terminal을 직접 선택합니다.