Как ограничить количество результатов в ReactiveMongoRepository - PullRequest
0 голосов
/ 24 сентября 2018

Я ищу способ передать ограничение для запроса монго в ReactiveCrudRepository

Я пытался добавить «First2» к имени метода, но я все еще получаю все результаты.

То, что я действительно ищу, - это способ передать значение 'limit' методу, передав его в запросе как @RequestParam int limit

Это мой код для хранилища

public interface ReactiveUserRepository
        extends ReactiveCrudRepository<User, String> {


    @Query("{ 'roles': ?0 }")
    Flux<User> findFirst2ByRole(String role);
}

И это метод контроллера:

@GetMapping(path = "/byrole", produces = "application/stream+json")
    Flux<User> getByRole(@RequestParam String role) {
        return users.findFirst2ByRole(role).doOnNext(next -> {
            System.out.println("Next user=" + next.getAssocId());
        }).switchIfEmpty(Mono.error(new ResponseStatusException(HttpStatus.NOT_FOUND, String.format("No users found with role=%s", role))));
    }

1 Ответ

0 голосов
/ 19 декабря 2018

попробуйте использовать реакторный метод users.findFirst2ByRole (role) .take (2), а при необходимости вы можете использовать skip ()

...