DynamoDB:从主键获取所有排序键

zpC*_*ris 4 amazon-dynamodb dynamodb-queries

我有一个带有主键和排序键的表;由于这是一个复合键,因此我有多个主键映射了不同的排序键。

如何获取与特定主键关联的所有排序键?

我尝试使用“获取”操作,但这似乎也需要排序键(即使这些是我正在寻找的)。我还查看了“BatchGet”操作,但这是针对多个不同的键,而不是针对具有多个不同排序键的单个主键。

我也尝试过“查询”,但没有成功,但我对此了解较少,所以这可能是解决方案 - 是这样吗?我还知道我可以“扫描”整个数据库并专门查找具有该特定主键的所有项目,但我希望尽可能避免这种情况。

我正在使用 JS 并将其用作参考:https://docs.aws.amazon.com/AWSJavaScriptSDK/latest/AWS/DynamoDB/DocumentClient.html

谢谢你!

Cha*_*les 6

Query()是你想要的...

基本上,您只需使用关键条件查询表(或索引)HashKey = :hkey并忽略任何AND排序关键条件...

在您链接到的文档中,有一个用于查询修改该示例的部分......

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);
});
Run Code Online (Sandbox Code Playgroud)