Est-il possible de COMMANDER les résultats avec l'API Query ou Scan dans DynamoDB ?
J'ai besoin de savoir si DynamoDB a quelque chose comme ORDER BY 'field'
des requêtes SQL ?
Merci.
Est-il possible de COMMANDER les résultats avec l'API Query ou Scan dans DynamoDB ?
J'ai besoin de savoir si DynamoDB a quelque chose comme ORDER BY 'field'
des requêtes SQL ?
Merci.
Vous pouvez utiliser la clé de tri et appliquer le paramètre ScanIndexForward dans une requête pour trier par ordre croissant ou décroissant. Ici, je limite les articles retournés à 1.
var params = {
TableName: 'Events',
KeyConditionExpression: 'Organizer = :organizer',
Limit: 1,
ScanIndexForward: false, // true = ascending, false = descending
ExpressionAttributeValues: {
':organizer': organizer
}
};
docClient.query(params, function(err, data) {
if (err) {
console.log(JSON.stringify(err, null, 2));
} else {
console.log(JSON.stringify(data, null, 2));
}
});
Utilisez ScanIndexForward (true pour l'ordre croissant et faux pour l'ordre décroissant) et pouvez également limiter le résultat à l'aide de la valeur setLimit de l'expression de requête.
Veuillez trouver ci-dessous le code où QueryPage a été utilisé pour trouver l'enregistrement unique.
public void fetchLatestEvents() {
EventLogEntitySave entity = new EventLogEntitySave();
entity.setId("1C6RR7JM0JS100037_contentManagementActionComplete");
DynamoDBQueryExpression<EventLogEntitySave> queryExpression = new DynamoDBQueryExpression<EventLogEntitySave>().withHashKeyValues(entity);
queryExpression.setScanIndexForward(false);
queryExpression.withLimit(1);
queryExpression.setLimit(1);
List<EventLogEntitySave> result = dynamoDBMapper.queryPage(EventLogEntitySave.class, queryExpression).getResults();
System.out.println("size of records = "+result.size() );
}
@DynamoDBTable(tableName = "PROD_EA_Test")
public class EventLogEntitySave {
@DynamoDBHashKey
private String id;
private String reconciliationProcessId;
private String vin;
private String source;
}
public class DynamoDBConfig {
@Bean
public AmazonDynamoDB amazonDynamoDB() {
String accesskey = "";
String secretkey = "";
//
// creating dynamo client
BasicAWSCredentials credentials = new BasicAWSCredentials(accesskey, secretkey);
AmazonDynamoDB dynamo = new AmazonDynamoDBClient(credentials);
dynamo.setRegion(Region.getRegion(Regions.US_WEST_2));
return dynamo;
}
@Bean
public DynamoDBMapper dynamoDBMapper() {
return new DynamoDBMapper(amazonDynamoDB());
}
}
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.