如何在rails中使用amazon Dynamo DB时实现分页

sun*_*nil 16 ruby-on-rails nosql amazon-dynamodb

我想使用带有rails的amazon Dynamo DB.但我还没有找到实现分页的方法.

我将AWS::Record::HashModel用作ORM.

这个ORM支持这样的限制:

People.limit(10).each {|person| ... } 
Run Code Online (Sandbox Code Playgroud)

但我无法弄清楚如何在Dynamo DB中实现以下MySql查询.

SELECT * 
  FROM  `People` 
 LIMIT 1 , 30
Run Code Online (Sandbox Code Playgroud)

小智 32

您使用LIMIT发出查询.如果返回的子集不包含完整表,则返回"LastEvaluatedKey"值.您在下一个查询中将此值用作ExclusiveStartKey.等等...

来自DynamoDB开发人员指南.

  • 这个答案没有考虑到DynamoDB只提供了一个方向的分页,提到了`LastEvaluatedKey`和`ExclusiveStartKey`(前进).使用DynamoDB的开箱即用的标准分页,至少是"previous"和"next"选项 (8认同)
  • @Srle,您为自己提供了使用 LastEvaluatedKey 和 ExclusiveStartKey 进行 NEXT 操作的方法。您可以反转查询的顺序并获取 PREVIOUS 操作。这在 DynamoDB 中是开箱即用的。 (2认同)
  • @Srle,"要反转顺序,请将ScanIndexForward参数设置为false." 来自http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/QueryAndScan.html (2认同)