我有一张时间戳为range_key
的表格。我的目标是检索具有最接近给定时间戳的日期的项目。当我像t.query(hash_key="somename", range_key_condition = db.boto.dynamodb.condition.LT(1389799297))
那样查询时,它会自然地获得比给定时间戳更少的所有项目,并且我会选择最接近的时间戳。我也可以通过使用BETWEEN
比较器来实现这一目的,方法是从当前时间中提取一些常量秒并在这些时间戳之间进行查询,并选择最接近原始时间戳的最后一个。如果它没有返回结果,我会再减少一点,然后重试,直到我有一个非空的结果集。
我也想知道上面调用查询功能会发生什么?在使用该函数查询之后,我们还需要使用result_set.next_response()
函数来获取元素。在第一个函数中,只确定磁盘上项目的偏移量,而不是使用next_response
函数从磁盘中检索它们吗?
答案 0 :(得分:0)
Migrate to DynamoDB v2并在查询中使用limit
:
t.query(
hash_key__eq="somename",
range_key_condition__lt=1389799297,
reverse=True,
limit=1
)