データストア、ListProperty、ソート
ListPropertyで持っている値でソートした結果をメモしておく。
テストに使用したクラス「Sksk(サクサク)」
from google.appengine.ext import db class Sksk(db.Model): stlist = db.StringListProperty() # テストデータ # Sksk(key_id=1L, stlist=[]) # Sksk(key_id=2L, stlist=[u'0', u'1']) # Sksk(key_id=3L, stlist=[u'0', u'1', u'2']) # Sksk(key_id=4L, stlist=[u' a b c', u'0']) # Sksk(key_id=5L, stlist=[u'c']) # Sksk(key_id=6L, stlist=[u'a', u'a']) # Sksk(key_id=7L, stlist=[u'2', u'5']) # Sksk(key_id=8L, stlist=[u'aa']) # Sksk(key_id=9L, stlist=[u' ']) # Sksk(key_id=10L, stlist=[u'aab']) # Sksk(key_id=11L, stlist=[u'a', u'b', u'c']) # テスト、昇順 sk = Sksk.all().order('stlist') # 結果 # Sksk(key_id=9L, stlist=[u' ']) # Sksk(key_id=4L, stlist=[u' a b c', u'0']) # Sksk(key_id=2L, stlist=[u'0', u'1']) # Sksk(key_id=3L, stlist=[u'0', u'1', u'2']) # Sksk(key_id=7L, stlist=[u'2', u'5']) # Sksk(key_id=6L, stlist=[u'a', u'a']) # Sksk(key_id=11L, stlist=[u'a', u'b', u'c']) # Sksk(key_id=8L, stlist=[u'aa']) # Sksk(key_id=10L, stlist=[u'aab']) # Sksk(key_id=5L, stlist=[u'c']) # テスト、降順 sk = Sksk.all().order('-stlist') # 結果 # Sksk(key_id=5L, stlist=[u'c']) # Sksk(key_id=10L, stlist=[u'aab']) # Sksk(key_id=8L, stlist=[u'aa']) # Sksk(key_id=11L, stlist=[u'a', u'b', u'c']) # Sksk(key_id=6L, stlist=[u'a', u'a']) # Sksk(key_id=7L, stlist=[u'2', u'5']) # Sksk(key_id=3L, stlist=[u'0', u'1', u'2']) # Sksk(key_id=2L, stlist=[u'0', u'1']) # Sksk(key_id=4L, stlist=[u' a b c', u'0']) # Sksk(key_id=9L, stlist=[u' '])
気付いた点
- そもそも、空要素は比較する要素がないので除外される。
- 0番目の要素を比較、1番目の要素を比較、2番目の要素を比較、、、という具合にソートされている。