У меня есть приложение SpringBoot с контроллером REST, и мне нужно выполнить сортировку по свойствам объекта, включая значения карты.
Вот мой класс объекта:
@Document
data class Event(
@Id
val id: CompoundId,
@Indexed
val timestamp: Instant,
val description: String,
val values: Map<String, Any> = HashMap()
)
Мой контроллер REST GET:
@GetMapping("/")
fun getEvents(
@PageableDefault(sort = ["timestamp"], direction = Sort.Direction.ASC)
pageable: Pageable?
): Collection<Event> = mongoRepository.find(pageable)
Кроме того, я использую MongoDB:
override fun find(pageable: Pageable?): Collection<Event> {
Query().apply {
pageable?.let { with(pageable) }
return mongoTemplate.find(this, Event::class.java)
}
}
Я пытаюсь сделать такие запросы: http://localhost:8080?sort=values,DESC
, и я вижу, что порядок изменился, но я не могу понятькакие параметры он сортировал.
Можно ли отсортировать по параметрам карты с помощью Pageable
, например http://localhost:8080?sort=values.someKeyInTheMap,DESC
?