如何在 aws-cli 上的 dynamodb 中 return 项目
how to return items in a dynamodb on aws-cli
所以,我有一个 DynamoDB table Users
我想 return 这个 table 的所有内容。或者甚至一些。
我试过了
aws dynamodb query --table-name Users
它说我必须指定 key-condition
或 key-condition-expression
,所以我添加了以下内容:
aws dynamodb query --table-name Users --key-condition-expression Username = "test"
它 return 是一条错误消息 " Unknown options: test "
。
据我了解,您没有正确传递 "key"(散列或 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
希望有帮助
如果要转储整个 table,只需使用
aws dynamodb scan --table-name Users
试试这个格式:
aws dynamodb get-item --table-name Users --key '{"Username": {"S": "test"}}'
aws dynamodb get-item --table-name ProductCatalog --key "{""Id"":{""N"":""205""}}" --no-verify-ssl
既然问题是关于使用query
操作,那么就到这里吧。
如 AWS cli documentation 所述,您应该使用 --expression-attribute-values
参数将属性值与条件分开:
aws dynamodb query --table-name Users
--key-condition-expression "Username = :v1"
--expression-attribute-values "{ \":v1\" : { \"S\" : \"test\" } }"
此外,您可以在筛选器中组合更多属性(在我的例子中,我有一个要筛选的日期时间排序键):
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
是保留关键字,所以不能在关键条件表达式中使用。
所以,我有一个 DynamoDB table Users
我想 return 这个 table 的所有内容。或者甚至一些。
我试过了
aws dynamodb query --table-name Users
它说我必须指定 key-condition
或 key-condition-expression
,所以我添加了以下内容:
aws dynamodb query --table-name Users --key-condition-expression Username = "test"
它 return 是一条错误消息 " Unknown options: test "
。
据我了解,您没有正确传递 "key"(散列或 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
希望有帮助
如果要转储整个 table,只需使用
aws dynamodb scan --table-name Users
试试这个格式:
aws dynamodb get-item --table-name Users --key '{"Username": {"S": "test"}}'
aws dynamodb get-item --table-name ProductCatalog --key "{""Id"":{""N"":""205""}}" --no-verify-ssl
既然问题是关于使用query
操作,那么就到这里吧。
如 AWS cli documentation 所述,您应该使用 --expression-attribute-values
参数将属性值与条件分开:
aws dynamodb query --table-name Users
--key-condition-expression "Username = :v1"
--expression-attribute-values "{ \":v1\" : { \"S\" : \"test\" } }"
此外,您可以在筛选器中组合更多属性(在我的例子中,我有一个要筛选的日期时间排序键):
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
是保留关键字,所以不能在关键条件表达式中使用。