Amazon dynamodb DynamoDB:从主键获取所有排序键
我有一个带有主键和排序键的表;因为这是一个复合键,所以我有多个主键映射到不同的排序键 如何获取与特定主键关联的所有排序键? 我尝试使用“Get”操作,但这似乎也需要排序键(尽管我正在寻找这些键)。我还研究了“BatchGet”操作,但这是针对多个不同的键,而不是针对具有多个不同排序键的单个主键 我也尝试过“查询”,但没有成功,但我对这一点了解较少,所以有可能这就是解决方案——是这样吗?我也知道,我可以“扫描”整个数据库,特别是找到具有特定主键的所有项目,但如果可能的话,我希望避免这种情况 我正在使用JS并将其用作参考: 谢谢大家!Amazon dynamodb DynamoDB:从主键获取所有排序键,amazon-dynamodb,dynamodb-queries,Amazon Dynamodb,Dynamodb Queries,我有一个带有主键和排序键的表;因为这是一个复合键,所以我有多个主键映射到不同的排序键 如何获取与特定主键关联的所有排序键? 我尝试使用“Get”操作,但这似乎也需要排序键(尽管我正在寻找这些键)。我还研究了“BatchGet”操作,但这是针对多个不同的键,而不是针对具有多个不同排序键的单个主键 我也尝试过“查询”,但没有成功,但我对这一点了解较少,所以有可能这就是解决方案——是这样吗?我也知道,我可以“扫描”整个数据库,特别是找到具有特定主键的所有项目,但如果可能的话,我希望避免这种情况 我正在
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);
});
您可以使用
query
方法,如果query
的结果包括LastEvaluatedKey
,这意味着您有更多数据要获取,让我们将LastEvaluatedKey
值放入下一个查询以获取下一个数据,再次重复,直到LastEvaluatedKey
为空或未定义。