提问者:小点点

DynamoDB:如何根据具有最高编号的列获取项目?


我正在尝试查询并获取具有最高版本的记录。 我很困惑,尝试了不同的方法从数据库中获取最高版本,而不必查询所有的项目,然后手动找出最大值。 有什么办法吗? 我不知道最高版本,所以我不能真正过滤它。

const params = {
  TableName: 'mytable',
  KeyConditionExpression:
    'a= :hkey and begins_with(b, :roleName)',
  FilterExpression: 'Version > ?',
  ScanIndexForward: false, // true = ascending, false = descending
  Limit: 1,
  ExpressionAttributeValues: {
    ':hkey': 'a',
    ':roleName': 'abc',
    ':version': ?,
  },
};

谢谢


共1个答案

匿名用户

您可以使用全局辅助索引,其分区键是固定的,排序键是版本。 然后使用scanindexforward=falselimit=1对GSI发出查询,以获取最后一个项目,即具有最高版本号的项目。