0

我正在尝试查询 DynamoDB 表以根据其 url 查找产品。

该表具有三个字段:标题、描述和网址。

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 Web 门户/控制台查看项目列表时,我能够在数据库中找到该条目,因此我知道该条目存在。

我在过滤器中犯了错误吗?

4

1 回答 1

1

我认为哈希键名称和值应该颠倒。第一个参数是键名,第三个参数是值。

Filter = new QueryFilter("Url", QueryOperator.Equal, productUrl)
于 2018-04-23T10:47:32.983 回答