如何使用boto查询dynamodb2索引?

时间:2014-01-24 09:01:58

标签: boto

如何使用boto查询带有索引的dynamodb2表?我无法将文件或单元测试中的足够信息拼凑成boto。

我创建了一个本地索引:

fields.KeysOnlyIndex('NameIndex', parts=[
    fields.HashKey('account_id', data_type='S'),
    fields.RangeKey('name', data_type='S'),
])

并希望使用account_idname

查找项目

尝试拨打电话table.query( account_id__eq=account['id'], name__eq = name )会导致错误Query condition missed key schema element id

注意:我还希望避免使用Table类并直接使用连接。

1 个答案:

答案 0 :(得分:1)

table = Table('accounts')
results = table.query(index='NameIndex', account_id__eq=account['id'], name__eq=name)

连接

results = conn.query(
    table_name='accounts',
    index_name='NameIndex', 
    select='ALL_PROJECTED_ATTRIBUTES', 
    key_conditions={
        'account_id': {
            'AttributeValueList': [
                {'S': account['id']},
            ],
            'ComparisonOperator': 'EQ',
        },
        'name': {
            'AttributeValueList': [
                {'S': name},
            ],
            'ComparisonOperator': 'EQ',
        },
    }
)