如何从 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"
的项目
我正在尝试在 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"
的项目