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

How to get all records from a table in DynamoDb using query

DynamoDb 新手

我在 AWS DynamoDb 中有一个 table 如下

tblCustomer

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

这是一个巨大的table。在它周围探索的同时。 Query 优于 Scan。 所以我选择了查询而不是扫描。

这就是我的 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 获取所有记录?

谢谢!

如果您正在寻找 return 记录的一个子集,则查询比扫描更好 - 您尝试做的(没有条件的查询)无论如何在功能上等同于扫描,所以你不妨使用扫描。

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