繁体   English   中英

DynamoDB 并对项目进行排序

[英]DynamoDB and get item sorted

我大约 2 周前开始使用 DynamoDB,现在我有必要根据排序列获取项目......我已经将我的表创建为令牌(PK),CreateTimestamp(排序)但我发现无法对 CreateTimestamp 列进行排序。 我需要这个,因为我需要读取在最后插入的行上定义的最高属性。 我怎样才能做到这一点?

谢谢

我认为您需要使用复合键,我们称它们为分区键 (PK) 和排序键 (SK)。

为了让所有项目有序,首先你需要把它们放在同一个分区(相同的 PK 值),然后创建一个 SK 与你想要排序的条件。 例如:

如果你想按日期排序,从旧到新,你可以利用KSUID

{
  "PK": {
    "S": "PK"
  },
  "SK": {
    "S": "272XuKFxQEa1VTj5dHEaKXWXBdc"
  }
}

272XuKFxQEa1VTj5dHEaKXWXBdc创建于2022-03-29 09:02:55.460868

默认查询将自动首先获取最旧的查询,如果您想获取最新的查询,可以将参数ScanIndexForward设置为false detail

否则,如果您想按数字增量(0、1、2、3 等)排序,则需要使用填充数字,如下所示:

{
  "PK": {
    "S": "PK"
  },
  "SK": {
    "S": "0000000"
  }
},
{
  "PK": {
    "S": "PK"
  },
  "SK": {
    "S": "0000001"
  }
}

查询可以和上面一样。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM