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 个最新创建的项目?

谢谢你的帮助!

4

1 回答 1

2

典型的解决方案,假设您希望项目具有最新日期而不考虑其他属性,是创建一个具有复合主键的全局二级索引,其中分区键是一个常量值,排序键是相关的日期属性。

然后,您可以使用以下命令对 GSI 进行查询:

  • 分区键 = 常量值
  • ScanIndexForward = false(降序排序)
  • 限制 = 1(仅检索 1 项)

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

于 2020-07-15T17:41:31.797 回答