【问题标题】:How to sort asc by created date in dynamodb with documentClient如何使用 documentClient 在 dynamodb 中按创建日期排序 asc
【发布时间】:2020-07-16 01:41:31
【问题描述】:

我只是想问你,我怎样才能收到按创建日期按 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 个最新创建的项目?

感谢您的帮助!

【问题讨论】:

    标签: node.js amazon-web-services amazon-dynamodb documentclient


    【解决方案1】:

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

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

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

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

    【讨论】:

    • 太棒了!它工作正常!谢谢!但我还有一个问题。我的项目有类别,现在我使用一个 GSI 来获取一个类别中的所有帖子。我可以添加多个 GSI 吗?我想从一个类别中选取最新创建日期的 3 个项目。
    • 是的,您可以拥有多个 GSI。
    猜你喜欢
    • 1970-01-01
    • 2013-11-13
    • 2013-08-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-23
    • 2021-12-26
    • 1970-01-01
    相关资源
    最近更新 更多