Ответ 1
Вы можете определить свой вид таким образом, чтобы игнорировать регистр:
new Sort(new Order(Direction.ASC, FIELD_NAME).ignoreCase()
Я новичок в mongodb, и в то время как я пытаюсь сделать заказанный запрос mongodb. Но метод сортировки данных mongodb spring устарел. Поэтому я использовал org.springframework.data.domain.Sort
:
Query query = new Query();
query.with(new Sort(Sort.Direction.ASC,"pdate"));
return mongoTemplate.find(query, Product.class);
Я использовал этот блок кода. Но это не сортировка данных. Так что вы можете использовать любой полезный метод для этой практики?
Вы можете определить свой вид таким образом, чтобы игнорировать регистр:
new Sort(new Order(Direction.ASC, FIELD_NAME).ignoreCase()
sПри написании пользовательского запроса в хранилище вы можете выполнить сортировку во время вызова. Подобно,
вместилище
@Query("{ 'id' : ?0}")
List<Student> findStudent(String id, Sort sort);
Во время вызова
Sort sort = new Sort(Sort.Direction.ASC, "date")
List<Student> students = studentRepo.findStudent(1, sort);
Надеюсь, это поможет! :)
Вы можете использовать агрегацию для сортировки ваших данных. Вы должны использовать критерии соответствия и группировки для запроса агрегации и разворачивать свое поле.
AggregationOperation match = Aggregation.match(matching criteria);
AggregationOperation group = Aggregation.group("fieldname");
AggregationOperation sort = Aggregation.sort(Sort.Direction.ASC, "fieldname");
Aggregation aggregation = Aggregation.newAggregation(Aggregation.unwind("fieldname"),match,group,sort);
query.with(new Sort(Sort.Direction.ASC, "timestamp"));
запомните параметр сортировки как поле, 1 или -1, чтобы указать сортировку по возрастанию или убыванию соответственно.
НОВЫЙ ОТВЕТ - Spring Data Moore
Используйте Sort.by
Query().addCriteria(Criteria.where("field").'is'(value)).with(Sort.by(Sort.Direction.DESC, "sortField"))
Мой код вопроса был правдой, теперь я вижу, была проблема с camelCase в поле 'pdate'.