我有一个很直接的问题
我想知道是否存在某些GSI哈希密钥。
我现在能找到的最好的是
DynamoDBQueryExpression<T> queryExpression;
// Logic for constructing query
queryExpression.withIndexName(SomeIndexName);
QueryResultPage<T> queryResponse mapper.queryPage(T.class, queryExpression, someMapperConfig));
此处查询结果页面包含结果列表,我可以检查该列表是否有任何内容,并判断它是否存在。
显而易见的问题是当存在事物时效率下降。有没有办法不通过网络IO移动项目的内容以进行验证(即服务器端对检查是否存在某些GSI密钥的谓词的总体验证)?
答案 0 :(得分:0)
当使用例如Put-Item编写项目时,您可以add a condition指定密钥不得存在。这样,DynamoDB会检查提供的密钥是否已被占用,并在您尝试放入内容时发出错误。只需捕获错误,然后您就知道密钥已被占用。