【发布时间】:2019-05-17 14:58:36
【问题描述】:
我有一个带有 REST 控制器的 SpringBoot 应用程序,我需要按实体属性(包括地图值)进行排序。
这是我的实体类:
@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,按地图参数排序?
【问题讨论】:
标签: mongodb spring-boot sorting pageable