2014-01-24 39 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', 
     }, 
    } 
)