DynamoDB 查询日期字段在过滤器中返回非日期行

DynamoDB Query Date Field returning non date rows in Filter

我的 DynamoDB table 设置有一个 Hash Key (PK) 和一个 SortKey (SK1)。我目前存储用户 ID 和与用户信息相关的各种排序键。例如,

PK SK1
User#1 DeviceToken#1234
User#1 CourseEnrolledDate#2022-01-20
User#1 CourseEnrolledDate#2022-01-19

我现在需要知道用户在 2022-01-19 之后注册了哪些课程,因此我使用 PK=User#1 和 KeyCondition= SK1 > CourseEnrolledDate#2022-01-19 发出查询。

结果正确过滤了 CourseEnrolled,除了它还包含 DeviceToken#1234 项目,这不应该是这种情况,因为 DeviceToken 项目没有要从中过滤的日期字段。我做错了什么?您如何建议我对用例建模?

而不是 > 运算符,将 BETWEEN 运算符应用于查询的 key condition expression:

中的 SK1
AND SK1 BETWEEN CourseEnrolledDate#2022-01-20 AND CourseEnrolledDate#9

其中 a BETWEEN b AND c returns 如果 a 大于或等于 b 且小于或等于 c.[=19,则为真=]