我尝试使用二级索引查询我的表 Tinpon ,产生分区键类别和sort-key tinponId 。我的目标是排除带有某些tinponIds的物品。我的第一个想法是进行负面比较:
keyConditionExpression = "category = :category AND tinponId != :tinponId"
但只有相同的 = 比较。然后我尝试了serval其他方法(遗憾地不存在):
keyConditionExpression = "category = :category NOT tinponId = :tinponId"
keyConditionExpression = "category = :category AND tinponId <> :tinponId"
keyConditionExpression = "category = :category AND tinponId < :tinponId AND tinponId > :tinponId"
在the AWS guide之后,没有不等于比较。为什么这样?
有没有办法查询除了id列表之外的DynamoDB,或者是检索一大堆项目并在以后手动过滤它们的唯一选项?
答案 0 :(得分:16)
KeyConditionExpression
不允许排序键不等于。但是,您可以使用FilterExpression
中的&#34; Not Equals ie&lt;&gt;&#34; 。
KeyConditionExpression : 'category = :category',
FilterExpression : 'tinponId <> :tinponIdVal',
ExpressionAttributeValues : {
':category' : 'somevalue',
':tinponIdVal' : 'somevalue'
}