Соответствующий префикс DynamoDB затем сортируется по дате - PullRequest
0 голосов
/ 06 октября 2018

Фон

Для заданной строки геохеша, скажем, 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?

...