0

最近、appengine インタラクティブ コンソールで次のようなことを試しました。

from google.appengine.ext import db
from django.utils import simplejson

class TestDb(db.Model):
    author = db.StringProperty()

def add(name):
    t = TestDb()
    t.author = name
    t.put()
#added some names...
lst = db.GqlQuery("Select * from TestDb")

print [(x.key().id(), x.author) for x in lst]

ID がシーケンシャルではないことはわかっていますが、新しいレコードが入るたびに昇順になると思います。

ここで、SQL が次のようになる条件を設定します。

SELECT * FROM TestDb WHERE ID > 2

これは可能GqlQuery()ですか?

4

1 に答える 1

2

自動的に割り当てられた ID は連続しているとは限りません。そのため、エンティティの順序付けに依存したい場合は、自分で ID を割り当てるか (これはお勧めしません)、別のプロパティ (おそらく作成タイムスタンプ?) で並べ替える必要があります。

そうは言っても、特別な__key__プロパティを使用して ID でフィルタリングできます。キー フィルタを参照してください。

于 2012-11-06T19:11:09.003 に答える