"按顺序排列"在DynamoDB中使用params

时间:2016-11-30 12:58:03

标签: node.js amazon-dynamodb

如果能够在查询/扫描后订购商品,我可以通过阅读Amazon DynamoDB指南来理解。

例如:

- 我的数据库表 -

        TableName:"Projects",
           Item:{
              "projectOwner": "User1",
              "projectName": "Project1",
              "creationDate": "Wed Nov 20 2016",
              "updateDate": "Wed Nov 29 2016",
         }Item:{
              "projectOwner": "User1",
              "projectName": "Project2",
              "creationDate": "Wed Nov 20 2016",
              "updateDate": "Wed Nov 28 2016",
         }Item:{
              "projectOwner": "User1",
              "projectName": "Project3",
              "creationDate": "Wed Nov 20 2016",
              "updateDate": "Wed Nov 30 2016",
         }

所以我想扫描我的数据库并返回" updateDate"所订购的所有商品。有没有办法使用dynamoDB params来实现这个目标?

        params = {
             TableName: "Projects",
             ProjectionExpression: "projectName",
             KeyConditionExpression: "projectOwner = :userId",
             ExpressionAttributeValues: {
                 ":userId":userId
             }
        };

1 个答案:

答案 0 :(得分:3)

DynamoDB中没有Order By。如果属性未定义为排序键,则必须在客户端对结果集进行排序。

但是,如果将updateDate定义为排序键,则API具有按升序或降序对数据进行排序的功能。

  

如果ScanIndexForward为true,DynamoDB将按顺序返回结果   存储它们(按排序键值)。这是默认值   行为。如果ScanIndexForward为false,则DynamoDB将读取结果   按排序键值反向排序,然后将结果返回给   客户端。

     

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