如何在aws-cli上返回dynamicdb中的项目



因此,我有一个DynamoDB表Users,我想返回该表的所有内容。甚至可能有些。

我试过

aws dynamodb query --table-name Users 

它说我必须指定key-conditionkey-condition-expression,所以我添加了以下内容:

aws dynamodb query --table-name Users --key-condition-expression Username = "test"

并返回错误消息CCD_ 4。

如果您想转储整个表,只需使用

aws dynamodb scan --table-name Users

尝试以下格式:

aws dynamodb get-item --table-name Users --key '{"Username": {"S": "test"}}'

由于问题是关于使用query操作,所以到此为止。

正如AWS cli文档所解释的,您应该使用--expression-attribute-values参数将属性值与条件分离:

aws dynamodb query --table-name Users 
    --key-condition-expression "Username = :v1" 
    --expression-attribute-values "{ ":v1" : { "S" : "test" } }"

此外,您可以在过滤器中组合更多属性(在我的情况下,我有一个Datetime排序键,我想根据它进行过滤):

aws dynamodb query 
  --table-name Users
  --key-condition-expression "Username = :v1 AND #Datetime BETWEEN :v2 AND :v3" 
  --expression-attribute-names "{ "#Datetime": "Datetime" }" 
  --expression-attribute-values "{ ":v1" : { "S" : "test" }, ":v2" : { "S" : "2019-06-06" }, ":v3" : { "S" : "2019-06-07" } }" 

这里的#Datetime映射是通过--expression-attribute-names参数完成的,因为Datetime是一个保留关键字,所以我不能在关键字条件表达式中使用它。

根据我的理解,您没有正确传递"密钥"(hash或hash/range)

创建一个包含密钥的文件:test.json

{
    "userName": {"S": "abc"},
    "anyRangeKey": {"S": "xyz"}  //optional
}

运行

aws dynamodb get-item --table-name users --key file://test.json

参考:http://docs.aws.amazon.com/cli/latest/reference/dynamodb/get-item.html
希望对有所帮助

aws dynamodb get-item --table-name ProductCatalog --key "{""Id"":{""N"":""205""}}" --no-verify-ssl

相关内容

  • 没有找到相关文章

最新更新