我有一个名为 Message 的DynamoDB表,具有以下属性:
message_id
:数字(分区键)user_id
:数字(排序键)incoming
:布尔值subject
:字符串我想创建一个全局二级索引,其中分区键为user_id
,排序键为incoming
和subject
的组合值。
全球二级索引:
user_id
:分区键incoming#subject
:排序键在将其与以下属性组合之前,是否必须手动将incoming
属性强制转换为字符串(其中true
变成"1"
,而false
变成"0"
) subject
?处理这种情况的标准方法是什么?
答案 0 :(得分:1)
据我所知,我不认为您只能在全局二级索引中拥有不同的属性,例如incoming
,而仅在原始索引中不能拥有subject
和incoming#subject
属性表。索引中的属性将反映表中的属性。两种表示形式之间的区别在于它们具有不同的分区键和排序键。因此,如果不在表中也没有此属性,就不能仅在索引中“组合” incoming#subject
。
但是,在表和索引中同时具有true#my_subject_here
可以解决您的问题,因为它的值将在数据库外部确定(当您写入表时)。因此,当您插入或更新数据时,无论是1#another_subject
还是{{1}},您都应该能够将其“广播”到所需的位置。
让我知道这是否对您有用!