问题
在阅读了冗长的AWS文档之后,我需要一些帮助来澄清DynamoDB的基本关键字和概念。
请协助确认这些是否正确。
哈希键
决定项目分区的键,因此也称为“分区”键。
主键
一个哈希键或(哈希键,范围键)对,只能标识表中的一个项。(哈希键,范围键)对也称为“复合”键。
如果
这个
主键只有哈希键
哈希键
“和”
主键
“可以互换使用(但这样做会导致混淆)。
简而言之,“可选范围键”与主键的哈希键一起使用。
除了主键中的范围键(hash key,range key),我们还可以有附加的range key,可以与主键的hash key一起使用。
的可选(哈希键、范围键)对
查询
.
KeyConditions
仅在表/索引主键的范围键部分
. 哈希键条件必须始终为
equal
表达式属性名称
在DynamoDB表中,有几十个单词不能用作其属性名,例如status。通过前缀“#”来使用这样的单词,可以绕过这个限制。也许是DyanmoDB的设计错误。
关键条件表达式
SQL WHERE like的一部分
查询
它需要主键的哈希键。它似乎标识了一个分区来获取项目,然后我们可以使用范围键来缩小项目范围。
对于表/索引的查询,可以有条件
仅在表/索引主键属性上
. 必须始终提供分区键名称和值作为EQ条件。您可以选择提供第二个条件,引用sort(aka range)键。
筛选器表达式
SQL WHERE like part可用于
查询
扫描
但只有
非关键
属性。
Filter Expressions for Query
过滤表达式
属性。您需要在键条件表达式中指定这些属性,而不是在筛选器表达式中指定这些属性。
如果用于
查询
除了键表达式之外,不匹配的项也会被丢弃。