1

在 C# 中使用 AWS DynamodB 文档模型查询 DynamoDB 表时,我观察到了一个意外结果。

我的表users有一个用户名主键。GSI 设置为user_type,user_idusername键。

查询我的 dynamodb

此表在我插入文档时有效,但在查询非索引但 GSI-ed 列时,它返回此错误:

必须在请求中指定 KeyConditions 或 KeyConditionExpression 参数。

我已经在过滤器对象中指定了条件。为什么要求我提供KeyConditionsor KeyConditionExpression?是否必须指定它们?如果是,我该怎么做?

4

1 回答 1

1

从文档中它不是 100% 清楚,但我相信如果您使用 DocumentModel 库Query 只有在您的 GSI 具有 range key 和 partition key 时才有效。相反,我会考虑使用标准的 sdk QueryRequest

要检查的另一件事是您使用的是Amazon.DynamoDBv2.DocumentModel,因为在版本 1中您必须明确指定 haskey

于 2017-11-23T10:06:38.170 回答