两个索引字段的DynamoDB查询表

时间:2013-10-29 13:50:36

标签: amazon-web-services amazon-dynamodb

在我的dynamoDB表中,我有两个字段,我打算查询特定的值。一个将返回几个结果,第二个将返回一个结果(也就是一行)。

我已经有一个范围键字段,即原始插入的日期。

如果我想要通过单个字段查询两个字段,我有哪些选择?

根据我的理解,有一个创建二级索引的选项,但我必须与哈希键一起查询,这不是我需要的。是否有任何选项可以在单个表中实现,而不是为该查询创建第二个表?

示例文件夹表:

 user_id (hash key)    
 date_created (range key)    
 folder_id

第一次查询:按日期降序选择特定用户订单的所有文件夹ID

第二次查询:为特定的folder_id选择单个原始

如果我在folder_id上使用二级索引,我将不得不在user_id(哈希键)旁边查询它,正如您所看到的那样,而不是我想要实现的目标。

感谢。

3 个答案:

答案 0 :(得分:6)

您需要全球二级索引。

folder_id (hash key)
date_created (range) - optional

然后您也可以通过folder_id

进行查询

答案 1 :(得分:3)

正如您自己所说,在这种情况下您无法使用LSI。

您必须创建另一个表,其中folder_id是散列键,其余数据作为属性。

答案 2 :(得分:1)

您还可以查询一个主键,该主键将返回最少量的结果,而不是过滤掉代码中的其余部分。