在阅读了详细的AWS文档之后,我需要一些帮助来阐明DynamoDB的基本关键字和概念。
请协助确认是否正确。
决定项目分区的键,因此也称为“分区”键。
一个哈希键或(哈希键,范围键)对只能识别表中的一项。 (哈希键,范围键)对也称为“复合”键。
如果 主键只有哈希键,则“ 哈希键”和“ 主键”可以互换使用(但这样做可能会造成混乱。)
简单来说,就是“替代范围键”与主键的哈希键一起使用。
除了主键中的范围键(哈希键,范围键),我们还有其他范围键可与主键的哈希键一起使用。
查询的备用(哈希键,范围键)对。
对于表上的查询,您只能在表/索引主键上的范围键部分上具有条件 。哈希键条件必须始终为
equal
。
数十个单词不能用作DynamoDB表中的属性名称,例如状态。这是一种绕过此限制的方法,可以通过在前缀前面加上“#”来使用此类单词。也许是DyanmoDB的设计错误。
SQL WHERE类似于 Query 的一部分,它需要主键的哈希键。似乎它标识了一个分区来获取项目,然后我们可以使用范围键来缩小项目范围。
对于表/索引的查询,您可以仅在表/索引主键属性上具有条件。您必须始终提供分区键名称和值作为EQ条件。您可以选择提供第二个条件,引用sort(aka范围)键。
SQL WHERE之类的部件,可用于查询和扫描,但只能用于非键属性。
过滤器表达式不能包含分区键或排序键属性。您需要在关键条件表达式中指定这些属性,而不是过滤器表达式。
如果除了键表达式之外在 Query 中使用,还会丢弃不匹配的项目。