1

我有一个由单个数字键索引的 DynamoDB。我希望能够检索具有特定键值的项目,并通过以逆排序顺序查询和请求单个项目来找到其最大值。当我尝试在同一个键上定义以下摘录中的 2 个索引时,我收到错误“两个键不能具有相同的名称”。

"KeySchema": [
  {
    "AttributeName": "logs",
    "KeyType": "HASH"
  },
  {
    "AttributeName": "logs",
    "KeyType": "RANGE"
  }
]
4

1 回答 1

0

您可以仅使用哈希键定义键模式,没有范围键

"KeySchema": [
  {
    "AttributeName": "logs",
    "KeyType": "HASH"
  }
]

要使用特定的“日志”值请求项目,请使用GetItem

要找到最高值,您需要执行Scan。这将是找到最高值的糟糕方法,因为这意味着评估表中的每个项目。这将是缓慢和昂贵的。

您可能需要重新评估您的方法。如果您只是尝试创建唯一 ID,那么这不是 DynamoDB 的正确方法。你应该做的是:

  • 生成长 UUID
  • 执行GetItem以验证 UUID 是否可用。这在 DynamoDB中非常便宜且快速
  • 使用 UUID
于 2019-03-14T12:47:17.230 回答