Java, запрос к mongodb с сортировкой по полю

Монго бд, есть поле "field" типа string, в котором записываются только натуральные числа.

Обращение к бд осуществляется через org.springframework.data.mongodb.core.Query

Query query = new Query();

к нему добавляются некоторые критерии

query.addCriteria(new Criteria().andOperator(someCriteria));

Также есть сортировка org.springframework.data.domain.Sort и пагинация.

Sort sort = Sort.by(field).ascending(); query.with(sort).with(Pageable.ofSize(pageSize).withPage(page));

Сейчас сортировка по полю field происходит как для текста, так как тип string.

Вопрос: как можно сделать так, чтоб сортировка проходила по полю field как для чисел, а не для текста. Возможно при самом запросе к бд можно как-то представить поле field как тип int или что-то подобное. В бд тип поля сменить на integer не получится. Сортировать результирующую выборку компаратором с изменением поля на тип integer не предлагать)


Ответы (1 шт):

Автор решения: Khagnar

если кому интересно, подсказали решение через Collation, сделал так:

Collation collation = Collation.of("en_US").numericOrdering(true);
query.collation(collation);
→ Ссылка