如何使用查询从DynamoDb中的表获取所有记录

时间:2019-02-19 14:31:11

标签: amazon-web-services asp.net-core amazon-dynamodb dynamodb-queries

DynamoDb的新手

我在AWS DynamoDb中有一个表,如下所示

tblCustomer

Id Name Email
1  Abc  abc@gmail.com
2  Xyz  xyz@gmail.com

这是一张巨大的桌子。在探索周围。 QueryScan好。 因此,我选择了“通过扫描查询”。

这就是我的C#函数的样子。

AmazonDynamoDBClient client = new AmazonDynamoDBClient();

var request = new QueryRequest
{
 TableName = "tblCustomer",
 ProjectionExpression = "Name, Email"
 };

 var response = await client.QueryAsync(request);

 foreach (Dictionary<string, AttributeValue> item in response.Items)
 {

 }

但这会引发异常

KeyConditionExpress cannot be null

在这里,我不需要KeyConditionExpress,因为我需要吸引所有客户。

如何以最有效的方式从tblCustomer获取所有记录?

谢谢!

1 个答案:

答案 0 :(得分:4)

如果您要返回记录的子集,则查询比扫描要好-无论如何,您尝试执行的操作(无条件查询)在功能上等同于扫描,因此您最好使用扫描。

也就是说,如果您发现自己需要经常运行全表扫描,则可能表明您的设计存在问题-扫描既昂贵又缓慢,应仅在必要时使用。