如何使用 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 项)

如果您想要给定类型的最新记录,那么查询中的分区键就是类型值。