Amazon DynamoDB
开发人员指南 (API 版本 2012-08-10)
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 Amazon AWS 入门

步骤 9:扫描 Movies 表

Microsoft .NET 和 DynamoDB 教程的本步骤中,您将以两种不同的方式扫描 Movies 表:使用文档模型扫描和低级别扫描。

使用文档模型搜索来扫描 20 世纪 50 年代的电影

为了设置对 20 世纪 50 年代的电影的文档模型扫描,DynamoDB_intro 中的 Main 函数创建了一个包含 ScanFilterScanOperationConfig 对象:

ScanFilter filter = new ScanFilter( ); filter.AddCondition( "year", ScanOperator.Between, new DynamoDBEntry[ ] { 1950, 1959 } ); ScanOperationConfig scanConfig = new ScanOperationConfig { AttributesToGet = new List<string> { "year, title, info" }, Filter = filter };

为了获取扫描的 Search 对象,该函数将 ScanOperationConfig 对象传递到 Table.Scan。利用 Search 对象,它随后等待 SearchListing_async(在 08_Querying.cs 中实施)检索和显示扫描结果。

使用低级别扫描检索 20 世纪 60 年代的电影

为了设置对 20 世纪 60 年代的电影的低级别扫描,DynamoDB_intro 中的 Main 函数创建了一个包含各种字段的 ScanRequest 对象:

ScanRequest sRequest = new ScanRequest { TableName = "Movies", ExpressionAttributeNames = new Dictionary<string, string> { { "#yr", "year" } }, ExpressionAttributeValues = new Dictionary<string, AttributeValue> { { ":y_a", new AttributeValue { N = "1960" } }, { ":y_z", new AttributeValue { N = "1969" } }, }, FilterExpression = "#yr between :y_a and :y_z", ProjectionExpression = "#yr, title, info.actors[0], info.directors, info.running_time_secs" };

该对象随后等待 ClientScanning_async 函数在 09_Scanninging.cs 文件中实施。ClientScanning_async 转而等待低级别 DynamoDB 方法 AmazonDynamoDBClient.ScanAsync 检索查询结果。

注意

由于“year”是 DynamoDB 中的保留字,您需要使用 ExpressionAttributeNames 为它创建一个别名(此处为 #yr)以在低级别表达式中使用它。

下一步

步骤 10:删除 Movies 表