Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ruby-on-rails-3/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Amazon dynamodb 什么是cli的有效dynamodb键条件表达式_Amazon Dynamodb_Aws Cli_Dynamo Local - Fatal编程技术网

Amazon dynamodb 什么是cli的有效dynamodb键条件表达式

Amazon dynamodb 什么是cli的有效dynamodb键条件表达式,amazon-dynamodb,aws-cli,dynamo-local,Amazon Dynamodb,Aws Cli,Dynamo Local,谁能告诉我有效的键条件表达式是什么。我试图在一个名为MyKeyTable的简单表上运行查询。它有两个“列”,即Id和另一个numberToStaticAreabout,其类型为Long 我希望看到我输入的所有值。所以我试着: aws dynamodb query --select ALL_ATTRIBUTES --table-name MyKeyTable --endpoint http://localhost:8000 --key-condition-expression "WHAT DO

谁能告诉我有效的键条件表达式是什么。我试图在一个名为MyKeyTable的简单表上运行查询。它有两个“列”,即Id和另一个numberToStaticAreabout,其类型为Long

我希望看到我输入的所有值。所以我试着:

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

我需要放什么馅饼?文件在这个问题上有点站不住脚。感谢您的帮助,即使只是一个指向好文档的链接。

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

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

参考:

用于扫描表格

aws dynamodb scan --table-name "you table name"
扫描整个表时无需传递任何键(注意:它将获得最大1MB的数据)


请参阅:

这里有一种只使用命令行的方法,您可以在不使用中间文件的情况下使用

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

--key-condition-expression "Id = :idValue"
(不要忘记占位符的冒号前缀!)

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

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

--expression-attribute-values "{"":idValue"":{""N"":""42""}}"
对于MacOS/Linux,JSON周围需要单引号:

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

MyHashKey-将是你的散列键值,这里我作为字符串作为参考,“abc”将是散列键的值在你的问题中,你已经接受了查询,为什么我使用它,我将更新我的问题以进行扫描,因为你可以使用扫描,我已经更新了答案谢谢,扫描确实给我一些数据,但是为了得到一个绿色的勾号,我想知道如何使查询正常工作;-)@MarkDickinson我已经指定在我的示例中只替换get项进行查询,我已经更新了答案:)谢谢!在JSON周围使用单引号可能会使阅读更容易一些:
--表达式属性值“{”:idValue:{“N”:“42”}”
Hmm。。当然,我同意这一点更具可读性,只是在准备更新这个答案时尝试了一下,至少在Windows上它不喜欢它——在它遇到第一个双引号错误后,它就崩溃了,这是在OS X和Linux上。单引号救了我。
--expression-attribute-values '{":idValue":{"N":"42"}}'