有人可以告诉我有效的关键条件表达式是什么。我试图在一个名为MyKeyTable的简单表上运行查询。它有两个“列”,分别是Id和LongType类型的AnotherNumberThatICareAbout。
我希望看到所有输入的值。因此我尝试了:
aws dynamodb query --select ALL_ATTRIBUTES --table-name MyKeyTable
--endpoint http://localhost:8000
--key-condition-expression "WHAT DO I PUT IN HERE?"
我需要输入什么哈希值?文档对这个恕我直言有点docs脚。任何帮助都值得赞赏,即使它只是一个好的文档的链接。
最佳答案
这是仅命令行方法,您可以不使用任何中间文件。
首先,使用值占位符构造您的关键条件表达式,例如,
--key-condition-expression "Id = :idValue"
(不要忘记占位符的冒号前缀!)
接下来,构造一个expression-attribute-values参数。请注意,它需要JSON格式。我一直试图忘记的棘手的一点是,您不能只为数字插入42或为字符串插入“ foo”。您必须告诉DynamoDb类型和值。关于如何格式化值规范的详细信息,请参见AWS docs,如果需要,它可能会非常复杂。
对于Windows,您可以通过将引号加倍来对其进行转义,例如
--expression-attribute-values "{"":idValue"":{""N"":""42""}}"
对于MacOS / Linux,JSON周围需要单引号:
--expression-attribute-values '{":idValue":{"N":"42"}}'