DynamoDB 并对项目进行排序
DynamoDB and get item sorted
我大约 2 周前开始使用 DynamoDB,现在我有必要根据排序列获取项目...我已经将我的 table 创建为令牌 (PK), CreateTimestamp(排序)但我找不到对 CreateTimestamp 列进行排序的方法。我需要这个,因为我需要读取在最后插入的行上定义的最高属性。我该怎么做?
谢谢
我认为您需要使用组合键,我们称它们为分区键 (PK) 和排序键 (SK)。
为了让所有的items有序,首先你需要把它们放在同一个分区(相同的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"
}
}
查询同上即可
我大约 2 周前开始使用 DynamoDB,现在我有必要根据排序列获取项目...我已经将我的 table 创建为令牌 (PK), CreateTimestamp(排序)但我找不到对 CreateTimestamp 列进行排序的方法。我需要这个,因为我需要读取在最后插入的行上定义的最高属性。我该怎么做?
谢谢
我认为您需要使用组合键,我们称它们为分区键 (PK) 和排序键 (SK)。
为了让所有的items有序,首先你需要把它们放在同一个分区(相同的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"
}
}
查询同上即可