刚刚在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()
吗?
答案 0 :(得分:2)
自动分配的ID不保证是顺序的,因此如果您想依赖于对实体的排序,您应该自己分配ID(我不建议),或者按其他属性排序(可能是创建时间戳?)
话虽如此,您可以使用特殊的__key__
属性按ID进行过滤。请参阅Key Filters。