使用.contains()从DynamoDB中检索值

时间:2017-07-21 13:05:08

标签: python amazon-web-services amazon-dynamodb

我是NoSQL数据库的新手,我遇到了问题。我只想从DynamoDB中包含特定值的表中获取密钥。我知道,对于关键等于我可以使用:

response = table.query(
    KeyConditionExpression=Key('year').eq(1992) 
) 

但我无法使用:

 response = table.query(
    KeyConditionExpression=Key('year').contain('1992') 
) 

错误是:

  

密钥对象没有包含属性。

2 个答案:

答案 0 :(得分:1)

您可以在此检查 Key class的所有方法:

https://github.com/boto/boto3/blob/develop/boto3/dynamodb/conditions.py

密钥类继承自类AttributeBase ,这里没有像contains,只有大于或以等开头。

答案 1 :(得分:0)

DynamoDB并不关注在查询API上使用contain来获取关键属性。您只能将等于用于分区键属性。

CONTAINS 只能与 LIST或SET 数据类型一起使用。此外,它只能在FilterExpression上使用。

  

CONTAINS:检查子序列或集合中的值。

     

列表支持CONTAINS:评估" a CONTAINS b"," a"   可以是一个清单;然而," b"不能是集合,地图或列表。