所以这就是事情,我正在使用亚马逊aws dynamodb的php sdk,并且需要在我的一个网站页面中应用分页,这些页面从表格中呈现记录。我经历了这个:
http://docs.aws.amazon.com/aws-sdk-php/v2/guide/feature-iterators.html 而这:
http://blogs.aws.amazon.com/php/post/TxJGHHKBUJO1AL/Iterating-through-Amazon-DynamoDB-Results
并决定使用getIterator()方法对结果进行分页。但是,我需要知道getIterator()方法返回的结果的顺序。我知道我可以使用Global Secondry Index对结果进行排序,但是因为我必须使用'查询()'方法。 我可能在这里遗漏了一些东西。
请有人建议我如何对getIterator()方法获得的结果进行排序。 提前致谢
答案 0 :(得分:0)
扫描表时没有隐含的顺序。返回给您的项的顺序或多或少是由DynamoDB服务在内部散列分区键(以前称为散列键)引起的排序。
如果您需要强大的订单保证,您需要使用索引和范围键的组合来实现,但我认为,如果您发现自己需要在DynamoDB表中的所有项目中获得强有力的订单保证,那么可能是错误地使用DynamoDB。
对DynamoDB结果进行分页的最佳选择是尝试将其映射到无限滚动模式,您只需使用上次评估的密钥来请求下一批项目。这样您就不必担心订购,并且可以保持代码相对有效。