DynamoDB 中使用参数的“排序依据”

dep*_*ver 3 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",
         }
Run Code Online (Sandbox Code Playgroud)

所以我想扫描我的数据库并返回按“updateDate”排序的所有项目。有没有办法使用 dynamoDB 参数来实现这一点?

        params = {
             TableName: "Projects",
             ProjectionExpression: "projectName",
             KeyConditionExpression: "projectOwner = :userId",
             ExpressionAttributeValues: {
                 ":userId":userId
             }
        };
Run Code Online (Sandbox Code Playgroud)

not*_*est 5

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

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

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

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