PythonのbotoはDESCソートをサポートしていないようです。例えば:
conn.create_domain('testing')
dom = conn.get_domain('testing')
dom.put_attributes ('hulk', { 'color': 'green', 'strength' : 90 })
dom.put_attributes ('iron man', { 'color': 'yellow', 'strength' : 50 })
dom.put_attributes ('me', { 'purple': 'blue', 'strength' : 1 })
dom.put_attributes ('superman', { 'color': 'red', 'strength' : 100 })
dom.put_attributes ('captain america', { 'color': 'blue', 'strength' : 10 })
q = dom.select ("select * from testing where strength is not null order by strength desc", consistent_read=True, max_items=1)
for r in q:
print "strongest is " + str(r.name) + " " + r['strength']
conn.delete_domain('testing')
結果は次のとおりです。
strongest is hulk 90
boto または SimpleDB のいずれかが熱烈な Marvel ファンによってコーディングされたか、または私が何かを理解していません。
ここで、「強さ順に並べる」に切り替えると、次のようになります。
strongest is me 1
上昇するとソートが正しく機能するように見えますが、下降するとソートされませんか?
SimpleDB の SELECT 構文がサポートしていない SQL MAX() 関数に相当するものをシミュレートしようとしています。
ところで、実際のデータセットは、悲しいことに、はるかにカラフルではありません。