如何使用Amazon DynamoDB模块获取仅匹配分区键(表有排序键)的所有项目。我正在使用GetItemRequest查询没有排序键。
GetItemRequest getItemRequest = getRequest(externalId);
IDMapping.from(dynamoDB.getItem(getItemRequest).item());
当我仅使用分区键和GetItemRequest进行查询时,我会遇到以下错误。
<代码>原因:软件。亚马逊。awssdk。服务。发电机B。模型DynamoDbException:提供的关键字元素与架构不匹配(服务:DynamoDb,状态代码:400,请求ID:6C9BTJCJOTS7I5FI1EBJLIQK3RVV4KQNSO5AEMVJF66Q9ASUAAJG,扩展请求ID:null)
我在quarkus应用程序中使用以下依赖项。
<dependency>
<groupId>software.amazon.awssdk</groupId>
<artifactId>dynamodb</artifactId>
</dependency>
此查询可以使用aws cli、aws控制台以及旧的java aws sdk进行。
有什么方法可以克服这一点吗?
提前感谢
GetItem请求需要完整密钥(分区和排序)。您可以对查询请求执行任何操作。
HashMap<String, String> nameMap = new HashMap<String, String>();
nameMap.put("#yr", "year");
HashMap<String, Object> valueMap = new HashMap<String, Object>();
valueMap.put(":yyyy", 1985);
QuerySpec querySpec = new QuerySpec().withKeyConditionExpression("#yr = :yyyy").withNameMap(nameMap)
.withValueMap(valueMap);
items = table.query(querySpec);
此示例适用于具有复合键的表:
问题内容: 我在Golang中使用aws-sdk-go库进行DynamoDb连接。 我的DynamoDb表具有分区键DeviceId(字符串)和排序键时间(数字)。如何编写GetItemInput以获取具有特定DeviceId的所有数据? 问题答案: 您必须使用查询或扫描操作,这是一个简单的示例,但是您可以在此处阅读有关Amazon文档的更多信息。 特别是查询操作 查询操作仅使用主键属性值在表或辅
我正在尝试使用bash中的AWS CLI删除同时具有分区和排序键的DynamoDB表中的所有项目。到目前为止,我发现的最好的事情是: 但这对于同时具有分区键和排序键的表不起作用,而且我还不能使它对这样的表起作用。知道如何修改脚本以使其适用于具有复合键的表吗?
我是DynamoDB的新手,想知道我们如何通过在JAVA中使用ONLY分区键来查询DynamoDB中的表 我有一个名为“ervive pdi data invalid qa”的表,其模式是: 分区键为SubmissionId 排序键是id。 城市(属性) 错误(属性) 这张桌子看起来像这样:桌子 我想通过使用(software.amazon.awssdk)新版本的AWS SDK DynamoDB类
我有一个带有主键和排序键的表;因为这是一个复合键,所以我有多个主键与不同的排序键映射。 如何获取与特定主键关联的所有排序键? 我尝试使用“Get”操作,但这似乎也需要排序键(尽管我正在寻找这些键)。我还研究了“BatchGet”操作,但这是针对多个不同的键,而不是针对具有多个不同排序键的单个主键。 我也尝试过“查询”,但没有成功,但我对这一点了解较少,所以这可能就是解决方案——是这样吗?我还知道,
我正在使用aws sdk go库实现Golang的DynamoDb连接。 我的DynamoDb表有一个分区键DeviceId(String)和一个排序键Time(Number)。如何编写GetItemInput以获取具有特定DeviceId的所有数据?
如何使用节点扫描AWS dynamodb中的所有项目。js。我在这里张贴我的代码。 我已经跟踪了链接https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStarted.NodeJs.04.html 过了一会儿我就有时间离开这里了。我也检查了这个链接,如何使用节点从“AWS dynamodb”获取/扫描所有项