我想用rails的amazon Dynamo DB。但我还没有找到实现分页的方法。如何在rails中使用amazon Dynamo DB时实现分页
我将使用AWS::Record::HashModel
作为ORM。
这ORM支持这样的限制:
People.limit(10).each {|person| ... }
但我不能想出如何实现按照迪纳摩DB MySQL查询。
SELECT *
FROM `People`
LIMIT 1 , 30
我想用rails的amazon Dynamo DB。但我还没有找到实现分页的方法。如何在rails中使用amazon Dynamo DB时实现分页
我将使用AWS::Record::HashModel
作为ORM。
这ORM支持这样的限制:
People.limit(10).each {|person| ... }
但我不能想出如何实现按照迪纳摩DB MySQL查询。
SELECT *
FROM `People`
LIMIT 1 , 30
您使用LIMIT发出查询。如果返回的子集不包含完整表,则返回“LastEvaluatedKey”值。您在下一个查询中将此值用作ExclusiveStartKey。等等......
您可以在查询中提供'页面大小'来设置结果集大小。 DynamoDB的响应包含'LastEvaluatedKey',它将根据页面大小指示最后一个键。如果响应不包含“LastEvaluatedKey”,则意味着没有结果可供提取。 下一次读取时使用'LastEvaluatedKey'作为'ExclusiveStartKey'。
我希望这会有所帮助。
这个答案没有考虑到DynamoDB只提供分页在一个方向上提到'LastEvaluatedKey'和'ExclusiveStartKey'(前进)。使用DynamoDB – Srle 2016-05-10 23:36:57
@Srle,至少包含'previous'和'next'选项的标准分页是不可能的,您提供了使用LastEvaluatedKey和ExclusiveStartKey进行NEXT操作的方式。您可以颠倒查询的顺序并获得以前的操作。这在DynamoDB中是可用的。 – 2016-12-29 08:48:03
@ nickolay.laptev您可以提供示例,要点或支持开箱即用的方向吗? – Srle 2016-12-29 09:54:53