当前位置: 首页 > 知识库问答 >
问题:

DynamoDB如何使用排序关键字与PartiQL查询?

轩辕乐邦
2023-03-14

您好,我是DynamoDB新手,我创建了一个表,其中包含分区键“pk”和排序键“id”

在then item explorer中,我可以用pk进行查询并对键值进行排序,这似乎很有效。

在PartiQL编辑器中我做

SELECT * FROM "dev" WHERE "pk" = 'config' AND "id" = "7b733512cc98445891dcb07dc4299ace"

我得到的错误过滤器表达式只能包含非主键属性:主键属性:id

我不知道如何在键条件中指定排序键,而不是使用WHERE子句指定筛选条件。

共有1个答案

苏波涛
2023-03-14

我发现了错误,如果您使用“代替”,则它不起作用。因此,正确的查询是:

SELECT * FROM "dev" WHERE "pk" = 'config' AND "id" = '7b733512cc98445891dcb07dc4299ace'
 类似资料:
  • 我有一个dynamodb表,它的字符串主键名为,数字排序键名为。我想获取dynamodb表中年龄

  • 在他们的留档中,AWS提到了用于查询的关键条件表达式: 该条件可以选择对单个排序键值执行多个比较测试之一。这允许Query检索具有给定分区键值和排序键值的一个项目,或具有相同分区键值但不同排序键值的多个项目。 但是,我无法使其正常工作,例如,生成类似以下内容的内容:pk=:pk AND(begins\u with(sk,:foo)或begins\u with(sk,:bar))我得到了错误

  • 我有一个DynamoDB表,其中包含主键:userID、排序键:sesionID和另一列,该列名为示例ID。 我想返回一个列表,该列表返回所有包含我发送的userID和examID的记录。这是我的代码: 这就是我得到的错误:{“statusCode”:500,“body”:“{”error“:“查询条件缺少关键架构元素:sessionId”}”, ... 我想也许我应该包括一个过滤器表达式,或者不

  • 我目前正在使用JS AWS-SDK的executeStatement使用PartiQL在DynamoDB中进行分页,但我返回的对象不包含用于分页的NextToken(仅项目数组)。这就是代码的样子(非常简单): 我想知道是否有人使用DynamoDB的PartiQL处理分页。 这可能是因为我的分区键是字符串类型吗? 还在努力弄清楚。 谢谢,提前!

  • 我有一个用JPA和Spring Data DynamoDB建立的Spring项目。它工作正常。我可以通过分区键和排序键(称为DynamoDBHashKey和DynamoDBRangeKey)读取DynamoDB表中的项。 我的问题是,我的存储库的设置方式是使用查询和扫描操作来读取表,而不是使用获取项目操作,这应该会更高效。 这是我的实体: 这是我的存储库: 当我的表同时具有分区键和排序键时,如何配

  • 假设我有一个名为“student_course”的Dynamo DB表。我想存储每个学生在大学学习的课程。一个学生可以一次学习多个课程,一个课程可以一次有多个学生。所以基本上它是一个多映射。 我的数据访问模式只有一个用例- 一次获取一个学生和一门课程的记录,即获取每个学生ID和CourseId组合的数据。它保证对于学生ID和课程ID组合,只有一条记录可用。 为了实现这一点,我可以通过以下两种方式存