代码之家  ›  专栏  ›  技术社区  ›  Alexey Ponomarenko

DynamoDb中无键条件表达式的查询

  •  0
  • Alexey Ponomarenko  · 技术社区  · 7 年前

    我是DynamoDb新手,但我想使用.NET查询数据,我有点困惑DynamoDb强迫我使用主键和KeyConditionExpression。

    例如,在SQL中,我可以这样做 SELECT * FROM tbl1 WHERE name = 'Alex' 在这种情况下,名字是 不是 主键。但我不能在迪纳莫德做类似的事情。

    这是我的代码:

            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 回复  |  直到 7 年前
        1
  •  1
  •   Ramdev Sharma    7 年前

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

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

    它通过使用GSI的例子来解释。

    推荐文章