Проблема с сортировкой, когда документы сохраняют в документах только ненулевые столбцы:
мой документ mongodb выглядит так:
# documents-1 :
"taskId": "2",
"taskType": "RFOUTAUD",
"id": "5d25bdda2f7ef0000654f281",
"releaseDatetime": "2019-05-28T09:00:39",
"startDateTime": "2019-05-28T09:44:11",
"endDateTime": "2019-05-28T09:50:25",
"resourceId": "SUPER",
"deviceCode": "QATERM1",
"effectivePriority": 40,
"sourceLocation": "1SS100",
"sourceLocationTravelSequence": "020055000",
"sourceWorkZone": "1RCVSHP035",
"sourceWorkZoneTravelSequence": "15035",
документы-2:
"taskId": "70",
"taskType": "RFOUTAUD",
"id": "5d25bdda2f7ef0000654f281",
"releaseDatetime": "2019-05-28T09:00:39",
"startDateTime": "2019-05-28T09:44:11",
"endDateTime": "2019-05-28T09:50:25",
"resourceId": "SUPER",
"deviceCode": "QATERM1",
"effectivePriority": 40,
"sourceLocation": "1SS100",
"sourceLocationTravelSequence": "020055000",
"sourceWorkZone": "1RCVSHP035",
"goalTime": 20
Имеется n записей с # документами-1: и несколько записей с # документами-2 - имеет дополнительный столбец "goalTime"
Теперь, когда я сортирую с Pageable по столбцу "goalTime", в результате я получаю только те документы, которые имеют "goalTime" и исключая документы, в которых отсутствует столбец
запрос выглядит примерно так
db.getCollection('29ec09db-20b9-4c52-a5af-53519f75a5b4_task').find({}).limit(10).sort({goalTime:1})
Пройдя реализацию org.springframework.data.domain.Sort, я нашел способ включить те документы, в которых отсутствует сам столбец.
Теперь проблема заключается в документе, в котором есть столбец "goalTime" со значением, поступающим в качестве последней записи, и если я поставлю предел 10, он не будет частью этого результата.
Это запрос монго:
`db.getCollection('29ec09db-20b9-4c52-a5af-53519f75a5b4_task').find({}).limit(2).sort({goalTime:1,NULLS_LAST:1})`
Я ищу результат, который сначала показывает документ, в котором отсортированы столбцы со значением, а затем документы, в которых сами столбцы отсутствуют