在我的dynamoDB表中,我有两个字段,我打算查询特定的值。一个将返回几个结果,第二个将返回一个结果(也就是一行)。
我已经有一个范围键字段,即原始插入的日期。
如果我想要通过单个字段查询两个字段,我有哪些选择?
根据我的理解,有一个创建二级索引的选项,但我必须与哈希键一起查询,这不是我需要的。是否有任何选项可以在单个表中实现,而不是为该查询创建第二个表?
示例文件夹表:
user_id (hash key)
date_created (range key)
folder_id
第一次查询:按日期降序选择特定用户订单的所有文件夹ID
第二次查询:为特定的folder_id选择单个原始
如果我在folder_id上使用二级索引,我将不得不在user_id(哈希键)旁边查询它,正如您所看到的那样,而不是我想要实现的目标。
感谢。
答案 0 :(得分:6)
您需要全球二级索引。
folder_id (hash key)
date_created (range) - optional
然后您也可以通过folder_id
进行查询答案 1 :(得分:3)
正如您自己所说,在这种情况下您无法使用LSI。
您必须创建另一个表,其中folder_id是散列键,其余数据作为属性。
答案 2 :(得分:1)
您还可以查询一个主键,该主键将返回最少量的结果,而不是过滤掉代码中的其余部分。