如何解决是否可以使用独占端点在 DynamoDB 全局二级索引上生成 BETWEEN 查询?
默认情况下,BETWEEN 查询的端点是包含的。我想使用独占端点查询一系列日期时间。
我目前正在使用 pynamo,所以我的查询是:
Item.my_index.query(
hash_key=hash_key_id,range_key_condition=Item.create_date.between(start_datetime,end_datetime)
)
我不想包含 create_date
为 end_datetime
的项目。不太理想的选项,按照我目前的偏好顺序,在查询后显式过滤掉带有 create_date == end_datetime
的项目,从索引中删除 create_date
并使用过滤条件实现结果,并调整 {{ 1}} 在发送到查询之前减去一微秒。
有什么方法可以直接支持这一点,或者有关于首选解决方法的建议吗?
解决方法
我的首选方法是从您发送给查询的 end_datetime
中减去一微秒。如果您的范围键是数字,这将很有效。如果它是一个字符串或二进制文件,它就不能正常工作。
下一个最好的选择是添加一个 FilterExpression 来删除 create_date == end_datetime 的记录。
从索引中删除 create_date 并不理想,因为这样您的查询将使用相同的分区/哈希键获取所有记录,随着数据的增长,这可能会变得不必要地昂贵。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。