如何使用 documentClient 在 dynamodb 中按创建日期对 asc 进行排序
How to sort asc by created date in dynamodb with 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;
};
如何使用 dynamodb documentClient 接收 3 个最新创建的项目?
感谢您的帮助!
典型的解决方案,假设您想要具有最新日期的项目而不考虑其他属性,是创建一个具有复合主键的全局二级索引,其中分区键是一个常量值,排序键是相关的日期属性。
然后您可以使用以下命令对 GSI 进行查询:
- 分区键 = 常量值
- ScanIndexForward = false(降序排列)
- 限制 = 1(仅检索 1 项)
如果您想要给定类型的最新记录,那么查询中的分区键就是类型值。
我只是想问你,我怎样才能收到按创建日期 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;
};
如何使用 dynamodb documentClient 接收 3 个最新创建的项目?
感谢您的帮助!
典型的解决方案,假设您想要具有最新日期的项目而不考虑其他属性,是创建一个具有复合主键的全局二级索引,其中分区键是一个常量值,排序键是相关的日期属性。
然后您可以使用以下命令对 GSI 进行查询:
- 分区键 = 常量值
- ScanIndexForward = false(降序排列)
- 限制 = 1(仅检索 1 项)
如果您想要给定类型的最新记录,那么查询中的分区键就是类型值。