3

我很困惑。我应该如何设计一个 DynamoDB 表以使用带分页的时间戳倒序有效地查询项目?

我知道我可以使用ScanIndexForward和查询它,LimitLastEvaluatedKey指南说:“查询结果始终按范围键排序,基于 ASCII 字符代码值”

那么范围键应该包含什么?现在我正在使用 reverseTimestamp,但我不确定:

var request = new QueryRequest()
    .WithTableName("Output")
    .WithLimit(25)
    .WithScanIndexForward(false)
    .WithExclusiveStartKey(new Key { HashKeyElement = new AttributeValue {S = "1"}, 
     RangeKeyElement = new AttributeValue {S = lastKeyEvaluated} })

将返回表中的 25 个最新项目

4

1 回答 1

2

在 Python 的 DynamoDB-Mapper 中,我们将所有日期序列化为“W3C 日期/时间格式”又名“RFC 3339”。使用 UTF-8 文本排序时,它具有按正确顺序对时间进行排序的好特性。另一个副作用是将 tz 信息与时间戳一起存储。

于 2012-09-04T16:49:38.797 回答