我有一个使用散列键和排序(范围)键的表。我的范围键是一个uuid。我有一个我想要查询数据库以使用DynamoDBMapper的任意一组范围键的情况。它们绝不是连续的,不幸的是,对我而言,它们不可能是连续的,所以我不能查询一系列的键(即键在a和b之间)。有什么办法可以有一个查询条件来搜索一组潜在值中的范围键?本质上是一个SQL WHERE条件,如:rangeKey IN(val1,val2,...);DynamoDB:在一系列非连续范围键中查询范围键
根据DynamoDBQueryExpression的文档,使用setKeyConditionExpression或setRangeKeyConditions似乎不可能。有没有这样做的有效方法?或者,我最好的办法是迭代我的潜在值集合,并使用load方法从数据库中单独检索它们?
你能分享一些关于你的数据模型的更多细节吗?使用uuids作为范围键似乎有点奇怪,因为它们没有自然顺序。 – hellomichibye
我第二hellomichibye的评论。这听起来像你的数据模型需要一些工作。使用UUID作为范围键是没有意义的。 –
我同意这不是理想的,但它是我们想出的最佳解决方案。我们为通过散列键访问的不同客户提供数据库分区。在分区内,所有文档都相互独立,因此任何排序或排序都是任意的。此查询是必需的,因为我们有一个将多个文档关联到另一个实体的引用表。但是,对该实体的参考文档经常变化,所以任何排序或排序都是非常随意的。 –