11

有人可以告诉我有效的关键条件表达式是什么。我正在尝试在一个名为 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?"

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

4

2 回答 2

9

这是一种仅命令行的方法,您可以在没有中间文件的情况下使用。

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

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

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

接下来,构造一个表达式-属性-值参数。请注意,它需要 JSON 格式。我总是试图忘记这个棘手的一点是,你不能只插入 42 作为数字或 "foo" 作为字符串。您必须告诉 DynamoDb类型和值。有关如何格式化值规范的完整细分,请参阅 AWS 文档,如果需要,这可能会非常复杂

对于 Windows,您可以通过将引号加倍来转义其中的引号,例如,

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

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

--expression-attribute-values '{":idValue":{"N":"42"}}'
于 2016-09-02T20:59:54.633 回答
4

创建一个包含您的密钥的文件: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

于 2016-02-15T14:14:32.097 回答