boto dynamodb2: puis-je interroger une table à l'aide de la gamme de clé?

Dans l'une de mes application en python, je suis en utilisant boto et je veux interroger une table dynamodb à l'aide de la gamme de clé seulement. Je ne veux pas utiliser le scan.

Schéma de notation de la table

ratings = Table.create('ratings', schema=[
    HashKey('user_id', data_type=NUMBER),
    RangeKey('photo_id', data_type=NUMBER)
], throughput={
    'read': 5,
    'write': 15,
}, indexes = [
    AllIndex('rating_allindex', parts=[
        HashKey('user_id', data_type=NUMBER),
        RangeKey('photo_id', data_type=NUMBER)
    ])
])


from boto.dynamodb2.table import Table
ratings = Table('ratings')
# photo_id is range_key and user_id is hash_key
ratings_list = ratings.query(photo_id__eq=1)

En le faisant, j'ai cette erreur Query condition missed key schema element user_id.
Encore une fois, j'ai pensé que je pourrais donner une condition de filtre pour mon hash_key

ratings_list = ratings.query(user_id__gte=1, photo_id__eq=1)

Mais il a montré l'erreur, Query key condition not supported. Je suppose que seul le filtre __eq est permis avec hash_key. Comment puis-je obtenir ce que je veux?

Pouvez-vous montrer le schéma et spécifier quels sont ceux qui sont le plus faible index secondaires?
J'ai ajouté le schéma de notation d'un tableau présentant le plus faible index secondaires.

OriginalL'auteur Santosh Ghimire | 2013-12-08