如何使用布尔属性创建组合的排序键

时间:2019-12-16 06:15:28

标签: amazon-dynamodb

我有一个名为 Message 的DynamoDB表,具有以下属性:

  • message_id:数字(分区键)
  • user_id:数字(排序键)
  • incoming:布尔值
  • subject:字符串

我想创建一个全局二级索引,其中分区键为user_id,排序键为incomingsubject的组合值。

全球二级索引:

  • user_id:分区键
  • incoming#subject:排序键

在将其与以下属性组合之前,是否必须手动将incoming属性强制转换为字符串(其中true变成"1",而false变成"0"subject?处理这种情况的标准方法是什么?

1 个答案:

答案 0 :(得分:1)

据我所知,我不认为您只能在全局二级索引中拥有不同的属性,例如incoming,而仅在原始索引中不能拥有subjectincoming#subject属性表。索引中的属性将反映表中的属性。两种表示形式之间的区别在于它们具有不同的分区键和排序键。因此,如果不在表中也没有此属性,就不能仅在索引中“组合” incoming#subject

但是,在表和索引中同时具有true#my_subject_here可以解决您的问题,因为它的值将在数据库外部确定(当您写入表时)。因此,当您插入或更新数据时,无论是1#another_subject还是{{1}},您都应该能够将其“广播”到所需的位置。

让我知道这是否对您有用!