问题
I'm using a python script to access a dynamodb database in AWS.
I have a table with a hash key and sort key.
For a given hash key, I want to find the item with the largest sort key that is less than a certain value. How can I do that?
Alternatively, is there a way to find the previous item from a given key?
I am not trying to find the item with the largest attribute value (an expensive task in dynamodb), I want the largest key value.
回答1:
I found the answer,
import boto3
import botocore
from boto3.dynamodb.conditions import Key, Attr
dynamodb = boto3.resource('dynamodb')
table = dynamodb.Table(table_name)
response = table.query(
Limit = 1,
ScanIndexForward = False,
KeyConditionExpression=Key('device').eq(device) & Key('epoch').lte(threshold)
)
Where:
- 'device' is my hash key
- 'epoch' is my sort key
- threshold is the value I want to search below
来源:https://stackoverflow.com/questions/42520701/return-item-with-maximum-sort-key-in-dynamodb