所以,我有一个dynamoDB表用户,我想要返回此表的所有内容。或者甚至是一些。
我试过
aws dynamodb query --table-name Users
它说我必须指定key-condition或key-condition-expression所以我添加了以下内容:
aws dynamodb query --table-name Users --key-condition-expression Username = "test"
并返回错误消息“Unknown options:test”
答案 0 :(得分:25)
如果要转储整个表,只需使用
aws dynamodb scan --table-name Users
答案 1 :(得分:18)
请尝试以下格式:
aws dynamodb get-item --table-name Users --key '{"Username": {"S": "test"}}'
答案 2 :(得分:1)
根据我的理解,你没有正确传递“key”(散列或散列/范围)
创建一个包含密钥的文件: test.json
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
...
getActivity().setTitle("My Fragment");
...
}
运行
{
"userName": {"S": "abc"},
"anyRangeKey": {"S": "xyz"} //optional
}
参阅:http://docs.aws.amazon.com/cli/latest/reference/dynamodb/get-item.html
希望有所帮助
答案 3 :(得分:0)
aws dynamodb get-item --table-name ProductCatalog --key "{""Id"":{""N"":""205""}}" --no-verify-ssl
答案 4 :(得分:0)
由于问题是关于使用query
操作的,所以就到了。
如AWS cli documentation所述,您应该使用--expression-atribute-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
是保留关键字,所以我不能在关键条件表达式中使用它。