2012-03-04 8 views
4

Actuellement, ma valeur de plage est un BigDecimal atteint par Time.now.to_f, et je veux récupérer tous les documents d'un utilisateur, comme ceci:Comment commander dans DynamoDB avec AWS SDK?

table = dynamo_db.tables['some_table'] 
table.load_schema 
docs = table.items.where(:user_id => user_id).select.map {|i| i.attributes} 

Le docs est ordonné dans la valeur de plage décroissant.

Répondre

3

Après avoir creusé dans le code source du SDK, j'ai pu trouver cette petite pépite utile pour la méthode AWS :: DynamoDB :: ItemCollection # requête

# @option [Boolean] :scan_index_forward (true) Specifies which 
    # order records will be returned. Defaults to returning them 
    # in ascending range key order. Pass false to reverse this. 

Depuis mon user_id est la valeur de hachage, j'étais capable de réviser ma requête à:

docs = table.items.query(:hash_value => user_id, :scan_index_forward => false).select.map {|i| i.attributes} 
+0

Ouais, cela n'apparaît pas dans la documentation Ruby SDK? –

+0

Pas du tout. A partir de maintenant, je vais juste lire la source au lieu de regarder le site de documentation. –

Questions connexes