【问题标题】:DynamoDB - Get Item by Global Secondary IndexDynamoDB - 通过全局二级索引获取项目
【发布时间】:2020-11-06 16:47:12
【问题描述】:

我有一个现有的表,它有 10 个字段。字段是这样的:

AuthID、UserID、年龄、工作等

该表存储我的用户的数据。 “AuthID”是主键,“UserID”是全局二级索引。

当我通过 AuthID 获取项目时,一切都很好。但我无法通过 UserID 获取项目。我尝试了 GetItem、Query 和 Scan 方法,但三种方法都失败了。

我需要能够使用我在下面编写的这 3 种方法获取数据:

1 - Get user data by AuthID (It's already works fine)
2 - Get user data by UserID
3 - Get user data by AuthID and UserID both

AuthID 和 UserID 是唯一的。有人能指出我该怎么做吗?

【问题讨论】:

  • 你能用你用来获取数据的代码更新问题吗?

标签: amazon-dynamodb dynamodb-queries amazon-dynamodb-index


【解决方案1】:

我在文档中搜索了很多,发现如果您需要获取单个项目,即使在使用全局二级索引时也不能使用 get 或 getItem 方法。可以使用查询方法。具有全局二级索引的查询方法示例是

let params = {
  TableName: "Users",
  IndexName: "your-index",
  ExpressionAttributeValues: {
    ":v1": "myid"
  }, 
  KeyConditionExpression: "my_partition_key_in_gsi = :v1", 
};
 dynamodb.query(params, function(err, data) {
   if (err) console.log(err, err.stack); // an error occurred
   else     console.log(data);           // successful response
 });

【讨论】:

    猜你喜欢
    • 2016-02-07
    • 1970-01-01
    • 2016-09-17
    • 2020-04-06
    • 1970-01-01
    • 1970-01-01
    • 2018-07-24
    • 2017-09-29
    • 1970-01-01
    相关资源
    最近更新 更多