为什么 DynamoDB 查询中没有"不等于"比较?



我尝试使用二级索引查询我的表Tinpon,产生分区键类别和排序键tinponId。我的目标是排除具有某些tinponId的项目。我的第一个想法是进行负面比较: keyConditionExpression = "category = :category AND tinponId != :tinponId" 但只有一个相等=比较。然后我尝试了薮猫其他方法(可惜不存在(: keyConditionExpression = "category = :category NOT tinponId = :tinponId" keyConditionExpression = "category = :category AND tinponId <> :tinponId" keyConditionExpression = "category = :category AND tinponId < :tinponId AND tinponId > :tinponId" 按照 AWS 指南,没有不相等的比较。为什么会这样? 有没有办法查询 DynamoDB 排除 ID 列表,或者这是检索一大堆项目并在以后手动筛选它们的唯一选项?

KeyConditionExpression不允许排序键不等于。但是,您可以在FilterExpression中使用"不等于即<>"。

KeyConditionExpression : 'category = :category',    
FilterExpression : 'tinponId  <> :tinponIdVal',
ExpressionAttributeValues : {
':category' : 'somevalue',
':tinponIdVal' :  'somevalue'
}

最新更新