我正在尝试查询DynamoDB表,以根据它的网址查找产品。
该表有三个字段:标题,描述&网址。
var credentials = new BasicAWSCredentials(awsDBLogins.AccessKey, awsDBLogins.SecretKey);
var client = new AmazonDynamoDBClient(credentials, RegionEndpoint.USEast2);
var context = new DynamoDBContext(client);
Table table = Table.LoadTable(client, "Products");
使用上面的代码我可以连接到表。然后我执行以下查询,该查询不返回任何错误,但结果列表为空。我希望在Url匹配“test”的情况下返回一个结果。
var productUrl = "test"
QueryOperationConfig config = new QueryOperationConfig()
{
Filter = new QueryFilter(productUrl, QueryOperator.Equal, "Url"),
AttributesToGet = new List<string>
{ "Title", "Description", "Url" },
ConsistentRead = true,
};
var ProductItem = table.Query(config);
虽然这在代码中不起作用,但是当我从AWS门户/控制台查看项目列表时,我能够在数据库中找到该条目,因此我知道该条目存在。
我在过滤器中犯了错误吗?
答案 0 :(得分:1)
我认为哈希键的名称和值应该颠倒过来。第一个参数是键名,第三个参数是值。
Filter = new QueryFilter("Url", QueryOperator.Equal, productUrl)