是否可以使用独占端点在DynamoDB全局二级索引上生成一个BETWEEN查询?

2024-05-14 21:36:57 发布

您现在位置:Python中文网/ 问答频道 /正文

默认情况下,中间查询的端点是包含的。我想使用独占端点查询日期时间范围

我目前正在使用pynamo,因此我的查询是:

Item.my_index.query(
    hash_key=hash_key_id,
    range_key_condition=Item.create_date.between(start_datetime, end_datetime)
)

我不想包括create_dateend_datetime的项。在我当前的偏好顺序中,不太理想的选项是在查询后用create_date == end_datetime显式过滤掉项目,从索引中删除create_date并使用过滤条件获得结果,在发送到查询之前通过减去一微秒来调整end_datetime

有没有办法直接支持这一点,或者建议一个首选的解决方法


Tags: keyiddatetimedateindexmycreate时间
1条回答
网友
1楼 · 发布于 2024-05-14 21:36:57

我的首选方法是从发送到查询的end_datetime中减去一微秒。如果您的范围关键点是一个数字,这将很好地工作。如果它是一个字符串或二进制文件,它就不能正常工作

下一个最佳选项是添加FilterExpression以删除create_date==end_datetime的记录

从索引中删除create_日期并不理想,因为这样您的查询将获取具有相同分区/哈希键的所有记录,随着数据的增长,这些记录可能会变得不必要的昂贵

相关问题 更多 >

    热门问题