我有一个表,它的时间戳为range_key
。我的目标是检索日期最接近给定时间戳的项目。当我像这样查询t.query(hash_key="somename", range_key_condition = db.boto.dynamodb.condition.LT(1389799297))
时,它会自然地得到所有小于给定时间戳的项,并取最近的项。我也可以通过使用BETWEEN
比较器来实现这一点,方法是从当前时间中构造一些恒定的秒数,并在这些时间戳之间查询,然后选择最接近原始时间戳的最后一个时间戳。如果没有返回任何结果,我会再减少一点,然后重试,直到得到一个非空的结果集。
我也想知道当我调用上面的查询函数时会发生什么?在使用该函数查询之后,我们还需要使用result_set.next_response()
函数来获取元素。在第一个函数中,是否只确定了磁盘上的项的偏移量,然后使用next_response
函数从磁盘中检索它们?
发布于 2014-01-16 15:09:30
在查询中使用Migrate to DynamoDB v2和limit
:
t.query(
hash_key__eq="somename",
range_key_condition__lt=1389799297,
reverse=True,
limit=1
)
https://stackoverflow.com/questions/21142091
复制相似问题