Фон
Для заданной строки геохеша, скажем, gbsuv
, мне нужно запросить дочерние местоположения, которые начинаются с этого префикса, т.е. результаты должны включать gbsuvss
, gbsuvsssk
...
Мне также нужно отсортировать эти результаты с date
и получить последние несколько из них
Работа на данный момент
+--------+-----------+-------------+-------------------------------+---------------------+
| Table: | PK | SK (GSI PK) | Attributes - Geohash (GSI SK) | Attributes - others |
+--------+-----------+-------------+-------------------------------+---------------------+
| | photo-123 | geohash | gbsuvsssk.20180630 | … |
+--------+-----------+-------------+-------------------------------+---------------------+
В GSI я сопоставляю геохэш с датой.
+------+---------+--------------------+---------------+--+
| GSI: | PK | SK | ProjectedAttr | |
+------+---------+--------------------+---------------+--+
| | geohash | gbsuvsssk.20180630 | … | |
+------+---------+--------------------+---------------+--+
Проблема
Когда я запрашиваю, я могу использовать begins_with
для поиска gbsuv
по ключу сортировки GSI, чтобы найти дочерние местоположения,но я никогда не смогу отсортировать результаты по дате, потому что gbsuvsssk
длиннее gbsuv
.
Как изменить дизайн таблицы и GSI?