Amazon dynamodb 获取aws dynamodb表的最后一项

Amazon dynamodb 获取aws dynamodb表的最后一项,amazon-dynamodb,dynamodb-queries,Amazon Dynamodb,Dynamodb Queries,因此,我想获取dynamodb表的最后一项/行,但找不到资源。我的主键是id,它有一系列递增的数字,比如1,2,3。。。分别为每行 这是我的职责 async function readMessage(){ const params = { TableName: table, }; return dynamo.getItem(params).promise(); } 我不确定应该在参数中添加什么。DynamoDB有两种主键: 分区键–一个简单的主键,由一个

因此,我想获取dynamodb表的最后一项/行,但找不到资源。我的主键是id,它有一系列递增的数字,比如1,2,3。。。分别为每行

这是我的职责

async function readMessage(){
   const params = {
        TableName: table,
    };
    return dynamo.getItem(params).promise();
}

我不确定应该在参数中添加什么。

DynamoDB有两种主键:

  • 分区键–一个简单的主键,由一个称为分区键的属性组成

  • 分区键和排序键–称为复合主键,这种类型的键由两个属性组成。第一个属性是分区键,第二个属性是排序键

按分区键获取项目时,需要指定确切的分区键。无法获取最大/最小分区密钥

相反,您可能希望创建一个带有时间戳(或ID,如果它是序列号)的排序键,并使用排序键获取最后一个项目


查看上的AWS文档了解更多信息。

在DynamoDB中设计表的正确方法是基于其预期的访问模式;如果这是你需要的,也许你应该考虑使用这个ID作为排序关键字而不是主键,然后以降序查询表,同时也将项目的数量限制为1。 相反,如果您不想更改项目的架构,并且不关心至少要执行两个操作,那么您有两个非最佳选项:

  • 如果你的邮件都没有被删除,只需先统计一下,然后利用这些信息来知道最近写的邮件是什么

  • 另一方面,如果你可以考虑在你的DyDoDB表中保存一个“特殊”记录,它基本上是一个计数,当你的“其他”项被写入时,它总是不断增加/写入。检索时,首先检索此特殊记录的值,并使用此信息检索实际记录