如何在where子句中指定大于<something>的ID?</something>

时间:2012-11-06 18:52:38

标签: python google-app-engine google-cloud-datastore gqlquery

刚刚在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()吗?

1 个答案:

答案 0 :(得分:2)

自动分配的ID不保证是顺序的,因此如果您想依赖于对实体的排序,您应该自己分配ID(我不建议),或者按其他属性排序(可能是创建时间戳?)

话虽如此,您可以使用特殊的__key__属性按ID进行过滤。请参阅Key Filters