Как отсортировать asc по дате создания в Dynamodb с помощью documentClient
Я просто хочу спросить вас, как я могу получить самые новые элементы, отсортированные по ASC по дате создания.
const getItems = async (limit) => {
const params = {
TableName,
KeyConditionExpression: '#field = :value',
ExpressionAttributeNames: {
'#field': 'pk',
},
ExpressionAttributeValues: {
':value': 'ITEM'
},
Limit: 3,
ScanIndexForward: true, // I think that it will sort by date, but it's probably sorting by pk...
};
return results.Items;
};
Как я могу получить 3 новейших созданных элемента с помощью Dynamodb documentClient?
Спасибо за помощь!
1 ответ
Решение
Типичное решение, предполагающее, что вам нужен элемент с самой последней датой независимо от других атрибутов, состоит в создании глобального вторичного индекса с составным первичным ключом, где ключ раздела является постоянным значением, а ключ сортировки - соответствующим атрибутом даты.
Затем вы можете сделать запрос к GSI с помощью:
- ключ раздела = постоянное значение
- ScanIndexForward = false (для сортировки по убыванию)
- Предел = 1 (для получения только 1 элемента)
Если вам нужна последняя запись данного типа, то ключ раздела в вашем запросе будет значением типа.