我是DynamoDb的新手,但我想使用.NET查询数据,但我有点困惑,DynamoDb迫使我使用主键和KeyConditionExpression。
例如,在SQL中,我可以执行以下操作SELECT * FROM tbl1 WHERE name = 'Alex'
,在这种情况下,名称为 NOT (主键)。但是我不能在DynamoDb中做类似的事情。
这是我的代码:
var request = new QueryRequest
{
TableName = "CompanyCommunication",
KeyConditionExpression = "Id = :v_Id",
FilterExpression = "CompanyName = :v_Com",
ExpressionAttributeValues = new Dictionary<string, AttributeValue> {
{":v_Com", new AttributeValue { S = "Microsoft" }} , {":v_Id", new AttributeValue { S = "1" } } }
};
Id是我的主键。但是我不能注释KeyConditionExpression或在KeyConditionExpression中使用其他字段。
但是我该如何不使用主键进行查询? 例如,仅使用CompanyName字段。
也许我误会了什么?
答案 0 :(得分:0)
如果要查询而不放入KeyCondition,则必须具有索引表。您可以检查以下链接以了解更多详细信息。
https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.html
它举例说明了如何使用GSI。