Spring change the sorting fields' order for mongodb
我尝试通过Spring
出于某种原因,Spring会更改"排序字段"的顺序。
我使用Spring和MongoDB数据(
在mongo数据中,我有特定的索引
我想按此特定索引排序,为此,我添加了以下代码进行排序:
1 2 | new Sort(Sort.Direction.DESC,"status").and(new Sort(Sort.Direction.DESC, "_id")); |
我先按
仅供参考:
我使用其他索引并对它们进行排序,而Spring不会对我的"排序字段"进行排序:
1 2 3 | {"status": -1,"__sort_authors": 1 } {"status": -1,"__sort_title": 1 } |
在这种情况下,Spring会将排序字段的顺序保存在Mongo查询中:
查询:
查询:
预期的mongo查询应为:
{"foldersIds" : {"$in" : ["project:6s5d4f32sd1f65"] },"availability" :"PRESENT" }, Fields: { }, Sort: {"status" : -1,"_id" : -1 }
实际的mongo查询为:
{"foldersIds" : {"$in" : ["project:5c505594e4b0e98a6537ec9d"] },"availability" :"PRESENT" }, Fields: { }, Sort: {"_id" : -1,"status" : -1 }
也许是因为
我想保留排序字段的顺序。知道如何保存订单吗?
谢谢!
我将尝试通过传递
1 2 3 4 | ArrayList<Order> orders = new ArrayList<>(); orders.add(new Sort.Order(Sort.Direction.DESC,"status")); orders.add(new Sort.Order(Sort.Direction.DESC,"_id")); Sort sort = Sort.by(orders); |
之所以建议这样做,是因为