首页 > 解决方案 > 已定义分区键和排序键时,DynamoDB如何通过createdAt查询

问题描述

我已经将 GSI 设置为作者作为分区键和状态作为排序键,并使用它们来查询我需要的数据。但是,我不知道按时间顺序对返回数据进行排序。

DynamoDb 表

-----------------------------------------------
| id | post  | author  | status  | createdAt   |
-----------------------------------------------
| 1  | post1 | author1 | publish | 2019-12-10  |
-----------------------------------------------
| 2  | post2 | author2 | draft   | 2019-12-11  |
-----------------------------------------------
| 3  | post3 | author1 | publish | 2019-12-12  |
-----------------------------------------------

和查询

var params = {
            TableName : "TABLENAME",
            IndexName: "gsi-authorStatus",
            KeyConditionExpression: "author = :author AND status = :status",
            ExpressionAttributeValues: {
                ":author": JSON.stringify(event.bodyJSON.author),
                ":status": JSON.stringify(event.bodyJSON.status)
            }
        };

        dynamo.query(params, function (err, data) {
            if (err) {
                console.error('Error with ', err);
                context.fail(err);
            } else {
                context.succeed(data);
            }
        });

我的查询给了我作者和状态匹配的数据,但它给了我一个随机顺序的数据。可以使用createdAt最新的返回数据顺序吗?

标签: amazon-dynamodb

解决方案


推荐阅读