2014-01-24 135 views
0

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

我有一个本地索引创建:

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

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', 
     }, 
    } 
)