查询最近的项目

时间:2014-01-15 15:55:45

标签: boto amazon-dynamodb

我有一张时间戳为range_key的表格。我的目标是检索具有最接近给定时间戳的日期的项目。当我像t.query(hash_key="somename", range_key_condition = db.boto.dynamodb.condition.LT(1389799297))那样查询时,它会自然地获得比给定时间戳更少的所有项目,并且我会选择最接近的时间戳。我也可以通过使用BETWEEN比较器来实现这一目的,方法是从当前时间中提取一些常量秒并在这些时间戳之间进行查询,并选择最接近原始时间戳的最后一个。如果它没有返回结果,我会再减少一点,然后重试,直到我有一个非空的结果集。

我也想知道上面调用查询功能会发生什么?在使用该函数查询之后,我们还需要使用result_set.next_response()函数来获取元素。在第一个函数中,只确定磁盘上项目的偏移量,而不是使用next_response函数从磁盘中检索它们吗?

1 个答案:

答案 0 :(得分:0)

Migrate to DynamoDB v2并在查询中使用limit

t.query(
    hash_key__eq="somename", 
    range_key_condition__lt=1389799297,
    reverse=True,
    limit=1
)