我正在编写python代码以查询dynamo DB上的表。除了其他条件外,我还想获取行,该行中存在我指定的键的某些值。
KeyConditionExpression = Key('Status').eq('Done') & Key('Name').begins_with('A') & Key('Error').exists()
在上面的代码中,我想显示“错误”列具有某些值的行,无论它是什么。 但最后一个条件是抛出错误。 AttributeError:“键”对象没有属性“存在”。
如何修改代码以合并第三个查询?
答案 0 :(得分:2)
假定“错误”键既不是分区键也不是排序键,因为您必须始终将分区键名称和值指定为相等条件。另外,对于排序键,您可以使用下面提到的比较运算符之一。
现在回到您的问题,如果您使用的是 Query 操作,那么您可以肯定地使用 QueryFilter 来检查某些非空值密钥“错误”的值存在。官方文档将QueryFilter定义为:
在Query操作中,QueryFilter是一种条件,可在读取项目后评估查询结果并仅返回所需值。
以下比较运算符可用于 QueryFilter :
EQ | NE | LE | LT | GE | GT | NOT_NULL | NULL |内容| NOT_CONTAINS | BEGINS_WITH | IN |在
之间请参考下面的链接以获取有关QueryFilter和FilterExpression的更多信息