- Newest
- Most votes
- Most comments
Its not possible to obtain order over all keys in a DynamoDB table. The only possible approach would be to Scan
the entire table and implement your sorting on the client side.
You could of course use DynamoDB Streams and keep pointers to the top 10 liked posts, if that is something your application intends to show. Then you could simply call BatchGetItems
with the 10 listed items.
Another option would be to create a GSI with a single attribute as the PK, for example POSTS
and the number of likes as the SK.
PK | SK | Other |
---|---|---|
POSTS | 7 | Data |
POSTS | 9 | Data |
POSTS | 11 | Data |
Then you could simply Query
your GSI with the key POSTS
and use ScanIndexForward=False
, Limit=10
.
Be warned that this is not a scalable solution as your GSI key is a single value. This will limit your tables writes to approximately 1000WCU per second. That's a decision you can make depending on your throughput needs.
Relevant content
- asked 2 years ago
- asked 2 years ago
- asked 2 years ago
- asked 2 years ago
- AWS OFFICIALUpdated 3 years ago
- AWS OFFICIALUpdated 2 years ago
- AWS OFFICIALUpdated 7 months ago
- AWS OFFICIALUpdated 10 months ago