首页 文章

使用唯一的哈希属性查询DynamoDB?

提问于
浏览
3

我打算将 User 表作为哈希键 UserNameLastLoginDate 属性(等等) .

我希望能够查询表格,例如:上个月没有登录的所有用户 .

我如何使用DynamoDB执行此操作?

我一直在寻找当地的二级指数,并考虑将 LastLoginDate 作为二级指数 . 但我如何理解documentation,二级索引只能帮助对相同的哈希键进行排序,在我的情况下,每个用户都有一个唯一的 UserName . 这会使这样的二级索引毫无意义吗?

提前致谢!

3 回答

  • -1

    你是对的,你必须总是通过HashKey查询,除非你做全表扫描 .

    进行全面扫描,您可以查看表中的每个条目并比较它们的LastLoginDate . 根据您拥有的用户数量,这可以很快变为不可扩展 .

  • 2

    您可以在LastLoginDate上创建GSI,并通过将查询发送到GSI来应用您的逻辑 . 这可能有助于更快地获得结果,而不是扫描敌人的HASH密钥并检查LastLoginDate和应用逻辑 .

  • 3

    我解决这个问题的方法是创建哈希键,例如'userType',可以是'regularUser','admin'等.UserName可以是范围键,LastLoginDate可以是索引 .

    然后,您可以通过提供散列键'regularUser'和范围键'some user name'来查询特定用户的表 . 如果您希望所有依赖于上次登录时间而非范围键'UserName'的用户使用索引'LastLoginDate' .

相关问题