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



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

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

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

全球二级索引:

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

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

据我所知,我认为您不能仅在全局二级索引中具有不同的属性,例如incoming#subject,并且仅在原始表中分离incomingsubject属性。索引中的属性将反映表中的属性。这两种表示形式之间的区别在于它们具有不同的分区键和排序键。因此,您不能只在索引中"组合"incoming#subject而不在表中使用此属性。

但是,在表和索引中同时具有incoming#subject可以解决您的问题,因为它的值将在数据库外部确定(当您写入表时(。因此,您应该能够在插入或更新数据时将其"强制转换"为所需的任何内容 - 无论是true#my_subject_here还是1#another_subject

让我知道这是否适合您!

最新更新