在没有关键条件表达式的DynamoDb中查询

时间:2018-11-29 16:18:16

标签: c# .net amazon-dynamodb

我是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字段。

也许我误会了什么?

1 个答案:

答案 0 :(得分:0)

如果要查询而不放入KeyCondition,则必须具有索引表。您可以检查以下链接以了解更多详细信息。

https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GSI.html

它举例说明了如何使用GSI。