似乎dynamodb的query
方法必须包含分区键作为过滤器的一部分。如果您不知道分区键,如何执行查询?
例如,您将具有属性userid
的User表设置为分区键。现在我们想通过电话号码查找用户。是否可以在没有分区键的情况下执行查询?使用scan
方法,可以实现这个目标,但是在应用过滤器之前从表中拉出每个项目的代价,据我所知。
答案 0 :(得分:9)
您需要使用phoneNumber
列作为索引哈希键来设置global secondary index(GSI)。
您可以致电UpdateTable来创建GSI。
创建索引后,您就可以使用IndexName
拨打Query,根据电话号码提取用户记录。