Единственный способ получить ограничения и состоит в использовании запросов , а не сканирований .
Но у вас, похоже, нет хеш-ключа, поэтому вы не можете использовать запросы.Какие у вас варианты?
Мне приходит в голову два.
Первый: хранить createAt
не как метку времени, а как дату и метку времени.Создайте глобальный вторичный индекс с ключом хеша, установленным на дату, и диапазоном, установленным на метку времени.Таким образом, вы сможете запросить этот индекс с сортировкой и ограничениями.Тем не менее, если у вас есть меньше, чем желаемый лимит элементов в один день, он не будет работать (вам нужно запросить предыдущую дату).
Второй: используйте DynamoDB Streams + Lambda, чтобы получать уведомления о новых записях и хранитьих в другом месте удаляют самый старый, образуя кэш LRU желаемого размера (предела).Вы даже можете использовать сканирование для поиска самого старого элемента в этом кэше, потому что его размер не будет большим.