如何使用dynamodb以降序排列最后插入的10条记录

时间:2017-12-13 07:08:56

标签: node.js amazon-dynamodb

我是amazone-dynamodb的新手。我想最后使用dynamodb按降序插入10条记录。

3 个答案:

答案 0 :(得分:1)

听起来您在这里使用DynamoDB示例:http://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStarted.NodeJs.01.html

示例数据没有插入时间戳。

另一个问题是,您只能使用排序键对DynamoDB进行排序,否则您需要在代码中执行排序。

因此,如果您的分区键是年份,而排序键是标题,则需要:

  1. 介绍一个为您提供创建时间戳的属性。
  2. 使用此属性的LSI创建表格,或使用新属性作为排序键创建GSI
  3. 现在您可以使用查询!
  4. 查询API有一个选项:

    • 按排序键按降序排序(使用ScanIndexForward参数)
    • 限制返回的项目数(使用Limit参数)

答案 1 :(得分:0)

DynamoDB只允许按sort key属性对数据进行排序。 ScanIndexForward选项可用于按升序或降序对数据进行排序。

请注意,仅对特定分区键进行排序。它不会对表中的所有项进行排序,并为您提供最后10条记录。可以对特定分区键执行排序操作。

  

ScanIndexForward

     

指定索引遍历的顺序:如果为true(默认值),则为   遍历按升序执行;如果错误,则遍历为   按降序执行。

排序键定义和示例: -

  

复合分区排序键被索引为分区键元素   和排序关键元素。此多部分键维护层次结构   在第一和第二元素值之间。例如,复合材料   partition-sort键可以是“UserID”(分区)和的组合   “时间戳”(排序)。保持分区键元素不变,你   可以搜索排序键元素以检索项目。这个会   允许您使用查询API,例如,检索所有项目   一系列时间戳的单个UserID。

答案 2 :(得分:0)

Abhaya Chauhan的回答大部分是正确的,尽管存在一个错误。 Limit参数实际上并不限制返回的项目数,而是限制扫描的项目数(无论它们是否符合搜索条件)。

因此,如果将限制设置为10,则可能会获得0到10之间的任何值。有关更多信息,请参见以下文档:

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Query.html#Query.Limit