首页 文章

DynamoDB - 设置项目的全局二级索引

提问于
浏览
12

我有一个具有以下属性的发电机表:

  • id(数字 - 主键)

  • title(String)

  • created_at(数字 - 长)

  • tags(StringSet - 包含一组标签,表示android,ios等)

我希望能够通过标签查询 - 获取标记为android的所有项目 . 我怎么能在DynamoDB中做到这一点?看起来全局二级索引只能在ScalarDataTypes(Number和String)上构建,而不能在一个集合中的项目上构建 .

如果我采用的方法是错误的,通过创建不同的表或更改属性来实现它的另一种方法也没关系 .

2 回答

  • 2

    索引的关键模式 . 索引键架构中的每个属性都必须是String,Number或Binary类型的顶级属性 . 不允许嵌套属性和多值集 . 密钥模式的其他要求取决于索引的类型:对于全局二级索引,哈希属性可以是任何标量表属性 . 范围属性是可选的,它也可以是任何标量表属性 . 对于本地二级索引,哈希属性必须与表的哈希属性相同,并且范围属性必须是非键表属性 .

  • 10

    您需要为此查询创建单独的表 . 如果您有兴趣根据标记获取所有项目,那么我建议保留一个包含主键的表:
    hash :标签
    range :id

    这样你就可以使用一个非常简单的Query按标签获取所有项目 .

相关问题