2016-11-30 180 views
1

如果在查询/扫描后有订购项目的方法,则通过阅读Amazon DynamoDB指南我不理解。DynamoDB中的“Order by”使用参数

例如:

- 我的数据库table--

 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

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

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

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

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