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

Mar*_*son 10 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?"
Run Code Online (Sandbox Code Playgroud)

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

Ric*_*che 7

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

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

--key-condition-expression "Id = :idValue"
Run Code Online (Sandbox Code Playgroud)

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

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

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

--expression-attribute-values "{"":idValue"":{""N"":""42""}}"
Run Code Online (Sandbox Code Playgroud)

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

--expression-attribute-values '{":idValue":{"N":"42"}}'
Run Code Online (Sandbox Code Playgroud)

  • 谢谢你!在JSON周围使用单引号可能会使它更容易阅读:`--expression-attribute-values'{":idValue":{"N":"42"}}'` (2认同)

Har*_*ara 5

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

{
    "yourHashKeyName": {"S": "abc"},
    "YourRangeKey": {"S": "xyz"}  //optional
}
Run Code Online (Sandbox Code Playgroud)

跑步

aws dynamodb query --table-name "your table name" --key-conditions file://test.json
Run Code Online (Sandbox Code Playgroud)

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

用于扫描桌子

aws dynamodb scan --table-name "you table name"
Run Code Online (Sandbox Code Playgroud)

当我们扫描整个表时不需要传递任何键(注意:它将获得最多 1MB 的数据)

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