Ben*_*eno 21 amazon-web-services amazon-dynamodb aws-cli
所以,我有一个dynamoDB表用户和我想要返回此表的所有内容.或者甚至是一些.
我试过了
aws dynamodb query --table-name Users
Run Code Online (Sandbox Code Playgroud)
它说我必须指定key-condition或key-condition-expression所以我添加了以下内容:
aws dynamodb query --table-name Users --key-condition-expression Username = "test"
Run Code Online (Sandbox Code Playgroud)
并返回错误消息"未知选项:测试"
ata*_*lor 31
如果要转储整个表,只需使用
aws dynamodb scan --table-name Users
Run Code Online (Sandbox Code Playgroud)
Aka*_*all 24
试试这种格式:
aws dynamodb get-item --table-name Users --key '{"Username": {"S": "test"}}'
Run Code Online (Sandbox Code Playgroud)
由于问题是关于使用query操作的,所以就在这里。
正如AWS cli 文档所解释的,您应该使用--expression-atribute-values参数将属性值与条件分开:
aws dynamodb query --table-name Users
--key-condition-expression "Username = :v1"
--expression-attribute-values "{ \":v1\" : { \"S\" : \"test\" } }"
Run Code Online (Sandbox Code Playgroud)
此外,您可以在过滤器中组合更多属性(在我的情况下,我有一个我想过滤的日期时间排序键):
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\" } }"
Run Code Online (Sandbox Code Playgroud)
这里的#Datetime映射是通过--expression-attribute-names参数完成的,因为Datetime是保留关键字,所以我不能在关键条件表达式中使用它。
| 归档时间: |
|
| 查看次数: |
22576 次 |
| 最近记录: |