根据定义,Item collection
只能存在于同时具有分区键和排序键的表中。
我们可以使用 Querty API
读取Item collection
的全部或部分内容。
“Query"这个词通常用来表示"从数据库中读取数据”,但在 DynamoDB 中,“Query"有一个特定的含义: 读取Item Collection
的全部或部分内容。
我们在之前的示例中使用的 ProductCatalog 表只有一个分区键,让我们来看看具有分区键和排序键的 Reply 表中的数据:
选择 Reply 表,然后点击Query
。该表中的数据有一个 Id 属性,引用 Thread 表中的项目。
我们的数据有两个Thread,每个Thread有 2 个回复。
让我们使用Query功能查询 Amazon DynamoDB#DynamoDB Thread 1
:
我们可以看到 DynamoDB Thread 1
中有两个Item:
由于该表中的排序键是时间戳,我们可以通过添加一个排序键条件来返回某个时间点之后发布的Thread中的回复,其中 ReplyDateTime
大于 2015-09-21
,然后单击运行:
使用过滤表达式。例如,我们可以找到Thread 1 中由 User B 发布的所有回复。清除排序键条件,单击Add filter,然后使用 PostedBy
作为属性名称,条件选择 等于
,值输入 User B
,然后单击运行:
Scan将执行完整的表扫描并以1MB块返回项目。
Scan API与Query API类似,但由于我们想扫描整个表而不是单个项目集合,因此Scan没有键条件表达式。但是,我们可以指定过滤表达式 ,这将减小结果集的大小(尽管不会减少消耗的容量)。
让我们看看Reply表中的数据,例如,我们可以找到所有由用户A发布的Reply :
我们应该会看到3个由用户A发布的Reply。