0

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

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

如果我想通过单个字段查询两个字段,我有什么选择?

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

示例文件夹表:

 user_id (hash key)    
 date_created (range key)    
 folder_id

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

第二个查询:为特定的 folder_id 选择单个 raw

如果我在 folder_id 上使用二级索引,我将不得不与 user_id(哈希键)一起查询它,正如您所看到的,这不是我想要实现的。

谢谢。

4

3 回答 3

6

您需要一个全球二级索引。

folder_id (hash key)
date_created (range) - optional

然后你也可以通过folder_id查询

于 2014-08-21T23:24:06.703 回答
3

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

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

于 2013-10-29T21:23:12.140 回答
1

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

于 2014-04-02T07:22:17.407 回答