Python 如何指定大于<;的ID;某物>;在where子句中?

Python 如何指定大于<;的ID;某物>;在where子句中?,python,google-app-engine,google-cloud-datastore,gqlquery,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 = d

最近在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()
实现吗?

自动分配的ID不保证是连续的,因此如果您想依赖实体的排序,您应该自己分配ID(我不推荐),或者按另一个属性排序(可能是创建时间戳?)


也就是说,您可以使用特殊的
\uuuuuu键\uuuu
属性按ID进行筛选。看。

你试过这样做吗?测试这个应该没有问题。当你运行你发布的代码时,你得到了什么?我得到了列表理解的所有条目好吧,我真的没有使用GQL,但是如果你不能使用查询,你可以在列表理解中添加一个if语句,而不会对性能造成太大影响。你能在where子句中写这个吗…?是的,我相信是这样的:id不必是顺序的,但我“放入”的最后一条记录的值是否会大于倒数第二条记录项中的对应值…?唯一的方法是如果记录id是顺序的,那么不。不,id较小的实体可能会在id较大的实体之后创建@丹霍勒维特1 2 10 11 50 101