我有一个带有主键和排序键的表;因为这是一个复合键,所以我有多个主键与不同的排序键映射。
如何获取与特定主键关联的所有排序键?
我尝试使用“Get”操作,但这似乎也需要排序键(尽管我正在寻找这些键)。我还研究了“BatchGet”操作,但这是针对多个不同的键,而不是针对具有多个不同排序键的单个主键。
我也尝试过“查询”,但没有成功,但我对这一点了解较少,所以这可能就是解决方案——是这样吗?我还知道,我可以“扫描”整个数据库,并特别查找具有特定主键的所有项目,但如果可能的话,我会尽量避免这种情况。
我正在使用JS并将其用作参考:https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html.
非常感谢。
Query()
是您想要的。。。
基本上,您只需使用关键字条件HashKey=:hkey查询表(或索引),并保留任何排序关键字条件。。。
在您链接到的文档中,有一部分用于查询修改该示例。。。
var params = {
TableName: 'Table',
KeyConditionExpression: 'HashKey = :hkey',
ExpressionAttributeValues: {
':hkey': 'key'
}
};
var documentClient = new AWS.DynamoDB.DocumentClient();
documentClient.query(params, function(err, data) {
if (err) console.log(err);
else console.log(data);
});
我正在使用Node。js和DynamoDB JavaScript SDK开发。 我有一个表,它使用“ID”作为分区键(散列键),使用“time”作为排序键(范围键)。我想从多分区密钥中获取最新的N个数据。 我可以使用Query从分区键获取最新的N个数据。 但我不知道如何从多分区密钥中获取最新的N个数据。如果我想从10个分区键获取数据,我应该查询10次吗?
我试图从AWS Lambda函数更新DynamoDb表中的一项,但出现以下错误: “errorMessage”:“调用UpdateItem操作时发生错误(ValidationException):提供的键元素与架构不匹配”, 在定义我的表时,我没有定义排序键,我的分区键名为'pipeId',我使用了以下代码: 在没有预先设置排序键的情况下,无法获取或更新项?还是我做错了什么?
问题内容: 表是由其主键本质上排序的吗?如果我有一个在BigInt标识列上具有主键的表,我可以相信查询将始终返回按键排序的数据,还是我明确需要添加“ ORDER BY”。性能差异很大。 问题答案: 数据通过聚簇索引进行物理存储,聚簇索引通常是主键,但不一定是主键。 如果没有ORDER BY子句,则不能保证SQL中的数据具有顺序。当您需要按特定顺序排列数据时,应始终指定ORDER BY子句。如果表已
如何使用Amazon DynamoDB模块获取仅匹配分区键(表有排序键)的所有项目。我正在使用GetItemRequest查询没有排序键。 当我仅使用分区键和GetItemRequest进行查询时,我会遇到以下错误。 <代码>原因:软件。亚马逊。awssdk。服务。发电机B。模型DynamoDbException:提供的关键字元素与架构不匹配(服务:DynamoDb,状态代码:400,请求ID:6
我需要从sybase ase数据库中的所有用户表创建数据字典。我不能安装像赛贝斯PowerDesigner这样的工具,所以我必须使用SQL查询来实现。 我在论坛的帮助下组成了这个查询,以显示表名、列名、数据类型、大小而不是空约束。但是我无法找到该列是否是主键,或者是否是聚集主键的一部分。 这里有人可以帮助我对所需的表进行必要的连接,以获得指示其主键状态的所需标志吗。我已经阅读了syskey和sys
我正在为DynamoDb使用AWS(JS)文档客户端库,并试图从表(分区排序键)中执行。问题是,我想按分区键和任何排序键获取所有项。 如果我没有在中定义sort key,我会得到