2 votes

Trouver la valeur la plus élevée dans la plage de clés

J'ai un dynamodb défini avec RangeKey comme time_in_millis. Maintenant, je veux trouver la dernière valeur d'un objet donné basé sur le HashKey.

Je suis en train d'essayer cela

MyObject key = new MyObject();
key.setHashKey("clé_de_hachage_de_l'objet");

DynamoDBQueryExpression q = new DynamoDBQueryExpression().withHashKeyValues(key)

Ensuite, je ne suis pas sûr comment spécifier pour trouver la valeur la plus élevée dans la clé de plage.

2voto

notionquest Points 15321

ScanIndexForward peut être utilisé pour trier la clé de plage dans l'ordre décroissant. Le premier élément de l'ensemble de résultats est la valeur maximale de la clé de plage (la clé de tri est également appelée clé de plage).

DynamoDBQueryExpression queryExpression = new DynamoDBQueryExpression().withHashKeyValues(myObject)
                .withScanIndexForward(false);

myObjectList = dynamoDBMapper.query(MyObject.class, queryExpression);

Si ScanIndexForward est vrai, DynamoDB renvoie les résultats dans l'ordre dans lequel ils sont stockés (par valeur de clé de tri). C'est le comportement par défaut. Si ScanIndexForward est faux, DynamoDB lit les résultats dans l'ordre inverse par valeur de clé de tri, puis renvoie les résultats au client.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X