Это, вероятно, не то, что вы хотите услышать, но вы не можете сделать это, используя табличные операции напрямую.
Динамо дает вам множество ограничений в создании масштабируемой системы. И большинство из них охватывают варианты, которые у вас есть для запроса; предлагая больше хранилища документов на основе ключей, чем традиционная база данных (дальнейшее обсуждение использования сканирования с некоторыми сомнительными предложениями) .
Я предлагаю вам взглянуть на то, как вам нужен доступ к вашим данным, и рассмотреть проект схемы в пределах раздела / сортировки / индексов.
Для подобных ситуаций (например, когда вам нужно извлечь свойство из таблицы), вы можете использовать архитектурный шаблон:
DynamoDB
-> DynamoDB Streams (shares Create/Update/Delete events)
-> Lambda checks id against a stored value of 'current max id':
- if create/update and higher, saves 'current max id' and 'last max id'
- if delete and equal, replace 'current max id' with 'last max id'
В этом случае вы можете сохранить полученное «представление» максимального идентификатора в другой таблице или в версионном документе s3. (нет. есть некоторые ограничения, вам может понадобиться сделать scan
, если два самых больших идентификатора будут удалены с помощью этой реализации).