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