我有一个dynamodb表,它的字符串主键名为name
,数字排序键名为age
。我想获取dynamodb表中年龄小于30岁的项目。我知道,由于我的过滤器位于一个键上,我可以使用查询而不是扫描。
所以我尝试了:response=table.query(KeyConditionExpression=Key('age').lt(decimal.decimal(30)))response
但这将返回响应:
ClientError: An error occurred (ValidationException) when calling the Query operation: Query condition missed key schema element: name
看来我需要为查询提供一个分区键?这是否意味着我只能查询给定姓名的年龄?
在boto3中执行此操作的代码是什么?
是的,这是真的。查询
需要分区键,因为它仅在特定分区上运行。
您需要在用例中使用扫描
和过滤器
,但这可能会有点昂贵,具体取决于表的大小。
理想的解决方案是跟踪所有分区键,并对它们进行并行查询。
如有任何帮助,不胜感激
您好,我是DynamoDB新手,我创建了一个表,其中包含分区键“pk”和排序键“id” 在then item explorer中,我可以用pk进行查询并对键值进行排序,这似乎很有效。 在PartiQL编辑器中我做 我得到的错误过滤器表达式只能包含非主键属性:主键属性:id 我不知道如何在键条件中指定排序键,而不是使用WHERE子句指定筛选条件。
我在DynamoDB中有一个表,我需要得到一个记录列表(Java),这些记录是从最后一天开始的。它们都有dateTime属性。 我所指的表的相关属性:customerUrl(string,hashkey)、dateTime(number,range key)和其他一些不相关的属性 我已经尝试过用dateTime的hashkey设置一个全局二级索引,但没有范围键。此索引名为“performanceI
是否有一种方法可以使用查询dynamodb的。我找不到任何在线教程或资源。
在DynamoDB中,我有一个表,其中每条记录都有两个日期属性,
在他们的留档中,AWS提到了用于查询的关键条件表达式: 该条件可以选择对单个排序键值执行多个比较测试之一。这允许Query检索具有给定分区键值和排序键值的一个项目,或具有相同分区键值但不同排序键值的多个项目。 但是,我无法使其正常工作,例如,生成类似以下内容的内容:pk=:pk AND(begins\u with(sk,:foo)或begins\u with(sk,:bar))我得到了错误