Подтвердить что ты не робот

Spring Сортировка запросов MongoDB

Я новичок в 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);

Я использовал этот блок кода. Но это не сортировка данных. Так что вы можете использовать любой полезный метод для этой практики?

4b9b3361

Ответ 1

Вы можете определить свой вид таким образом, чтобы игнорировать регистр:

new Sort(new Order(Direction.ASC, FIELD_NAME).ignoreCase()

Ответ 2

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);  

Надеюсь, это поможет! :)

Ответ 3

Вы можете использовать агрегацию для сортировки ваших данных. Вы должны использовать критерии соответствия и группировки для запроса агрегации и разворачивать свое поле.

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);

Ответ 4

query.with(new Sort(Sort.Direction.ASC, "timestamp"));

запомните параметр сортировки как поле, 1 или -1, чтобы указать сортировку по возрастанию или убыванию соответственно.

Ответ 5

НОВЫЙ ОТВЕТ - Spring Data Moore

Используйте Sort.by

Query().addCriteria(Criteria.where("field").'is'(value)).with(Sort.by(Sort.Direction.DESC, "sortField"))

Ответ 6

Мой код вопроса был правдой, теперь я вижу, была проблема с camelCase в поле 'pdate'.