如何从 DynamoDb AWS 控制台获取 table 的最大元素?

How to get maximum element from a table from DynamoDb AWS Console?

我正在尝试在 NoSQL 中创建数据库 table,以便能够检索其中一列中具有最大值的元素。

假设 SQL 架构如下所示:

Table_Page

PageId: int(10) - PK

名称:varbinary(255)

RevisionId: int(10) - FK

Table_Revision

RevisionId: int(10) - PK

文本:varbinary(255)

Rev_TimeStamp: 二进制 (14)

我如何Amazon DynamoDB 控制台 中设计架构,使其支持查询以检索具有最新修订版的页面?谢谢!

我想您想要做的查询是,给定一个 page_id,找到具有最大时间戳的该页面的修订版。 (而不是寻找最大时间戳的修订版,不管 page_id)

您可以像这样在 DynamoDB 中设计 table:

Table_Page_Revision
HashKey: PageId
RangeKey: Rev_TimeStamp
Attrubute 1: RevisionId
Attribute 2: Text

然后另一个table只是为了存储页面的名称:

Table_Page_Name
HashKey: PageId
Attribute: Name

要进行查询,您可以使用以下伪代码:

Table_Page_Revision.query(HashKey="Your Page Id", ScanIndexForward=False, Limit=1)

我们将 "scan forward" 参数设置为 false,这意味着它将从具有较大范围键的项目开始到较小范围键 (DESC)。我们还将限制设置为 1,这意味着我们只对返回 1 个项目感兴趣。结合在一起,您将获得最大 "Rev_TimeStamp"

的项目