Я пытаюсь отсортировать данные в монго по объекту Spring Sort
с двумя конкретными полями.Почему-то Spring меняет порядок «полей сортировки».
Я использую данные Spring и MongoDB (MongoTemplate
).Я использую findAll()
функцию для получения некоторых записей.В данных монго у меня есть определенный индекс { "status": -1, "_id": -1 }
.Я хочу отсортировать по этому конкретному индексу, и для этого я добавил этот код для сортировки:
new Sort(Sort.Direction.DESC, "status").and(new Sort(Sort.Direction.DESC,
"_id"));
Я сортирую по полю status
, а затем по _id
полю (например, по индексу).
К вашему сведению:
Я использую другие индексы и сортирую по ним, а Spring не сортирует мои «поля сортировки»:
{ "status": -1, "__sort_authors": 1 }
{ "status": -1, "__sort_title": 1 }
В этих случаях Spring сохраняетПорядок сортировки полей в запросе Монго:
Запрос: {...}, Sort: { "status":-1, "__sort_authors":1 }
Запрос: {...}, Sort: { "status":-1, "__sort_title":1 }
Ожидаемый запрос монго должен быть:
{"folderIds": {"$ in": ["project: 6s5d4f32sd1f65"]}, "Availability": "PRESENT"}, Поля: {}, Сортировка: {"status ": -1," _id ": -1}
Фактический запрос монго:
{" folderIds ": {"$ in": ["project: 5c505594e4b0e98a6537ec9d"]}, "Availability": "PRESENT"}, Поля: {}, Сортировка: {"_id": -1, "status": -1}
Может, потому что _id
является основным полем?
Я хочу сохранить порядокполя сортировки.Есть идеи как сохранить заказ?
Спасибо!