检查DDB中是否存在GSI密钥的模型是什么?

时间:2018-03-05 20:10:29

标签: amazon-dynamodb

我有一个很直接的问题

我想知道是否存在某些GSI哈希密钥。

我现在能找到的最好的是

DynamoDBQueryExpression<T> queryExpression;             
// Logic for constructing query
queryExpression.withIndexName(SomeIndexName);
QueryResultPage<T> queryResponse mapper.queryPage(T.class, queryExpression, someMapperConfig));

此处查询结果页面包含结果列表,我可以检查该列表是否有任何内容,并判断它是否存在。

显而易见的问题是当存在事物时效率下降。有没有办法不通过网络IO移动项目的内容以进行验证(即服务器端对检查是否存在某些GSI密钥的谓词的总体验证)?

1 个答案:

答案 0 :(得分:0)

当使用例如Put-Item编写项目时,您可以add a condition指定密钥不得存在。这样,DynamoDB会检查提供的密钥是否已被占用,并在您尝试放入内容时发出错误。只需捕获错误,然后您就知道密钥已被占用。