【发布时间】:2016-10-18 22:13:20
【问题描述】:
我从 AWS documentation 引用以下内容
具有相同分区键值的项目按排序键排序存储。如果排序键数据类型为数字,则结果按数字顺序存储。对于 String 类型,结果按 ASCII 字符代码值的顺序存储。对于 Binary 类型,DynamoDB 将二进制数据的每个字节视为无符号。
假设一个表有一个全局二级索引(没有相关的范围键),相同 GSI 值的数据的存储顺序是什么?
DynamoDB 是否在将数据存储在具有相同分区键值的表中(仅具有分区键而没有在特定分区键上定义范围键)时根据某些属性维护某种顺序(这只会发生在GSI)只是分区键?
例如在下表中,3 个 GameTitle 为“GalaxyInvaders”的项目将按任何顺序存储在表中?
(GSI) (HashKey)
——————————————————————————————————————————
GameTitle | Score | UserId
——————————————————————————————————————————
AlienAdventure | 23 | 101
AttackShip | 45 | 102
GalaxyInvaders | 34 | 104
GalaxyInvaders | 45 | 106
GalaxyInvaders | 56 | 107
我问这个是因为我在 GSI 上使用 lastEvaluatedKey 进行查询(此 GSI 没有范围键,表有单独的范围和哈希键),我想知道我是否可以朝两个方向前进,即获取下一页结果并使用 ScanIndexForward 获取上一页结果?
如果维持一些秩序,那么我似乎可以,但我找不到支持性文档。从我到目前为止所做的查询来看,我可以双向进行。
【问题讨论】:
标签: amazon-web-services pagination amazon-dynamodb