什么是cli的有效dynamodb key-condition-expression

时间:2016-02-15 14:04:32

标签: amazon-dynamodb aws-cli dynamo-local

有人可以告诉我一个有效的关键条件表达式。我试图在一个名为MyKeyTable的简单表上运行查询。它有两个“列”,即Id和AnotherNumberThatICareAbout,类型为Long。

我希望看到我投入的所有价值观。所以我试过了:

aws dynamodb query --select ALL_ATTRIBUTES --table-name MyKeyTable
--endpoint http://localhost:8000 
--key-condition-expression "WHAT DO I PUT IN HERE?"

我需要放入什么哈希?文档对这个imho有点蹩脚。任何帮助表示赞赏,即使它只是一个好文档的链接。

2 个答案:

答案 0 :(得分:7)

这是一种只能使用命令行的方法,没有中间文件。

首先,使用值占位符来构造键条件表达式,例如

--key-condition-expression "Id = :idValue"

(不要忘记占位符的冒号前缀!)

接下来,构造一个expression-attribute-values参数。请注意,它需要JSON格式。我总是试图忘记的一个棘手的问题是你不能只为一个数字插入42或者#34; foo"一个字符串。您必须告诉DynamoDb 类型和值 。参考AWS docs有关如何格式化值规范的完整细分,如果需要,可能会非常复杂。

对于Windows,您可以通过将它们加倍来转义引号,例如

--expression-attribute-values "{"":idValue"":{""N"":""42""}}"

对于MacOS / Linux,JSON需要单引号:

--expression-attribute-values '{":idValue":{"N":"42"}}'

答案 1 :(得分:3)

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

{
    "yourHashKeyName": {"S": "abc"},
    "YourRangeKey": {"S": "xyz"}  //optional
}

运行

aws dynamodb query --table-name "your table name" --key-conditions file://test.json

参考:http://docs.aws.amazon.com/cli/latest/reference/dynamodb/query.html

扫描表格

aws dynamodb scan --table-name "you table name"

无需传递任何键,因为我们扫描整个表(注意:它将获得最大1MB的数据)

参阅:http://docs.aws.amazon.com/cli/latest/reference/dynamodb/scan.html