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 回答