Как указать идентификатор больше, чем <что-то> в предложении where?

Только что попробовал что-то вроде следующего в интерактивной консоли 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]

Я точно знаю, что идентификатор не является последовательным, но я предполагаю, что он будет возрастать для каждой новой записи, которая появляется.

Теперь я хочу поставить условие, чей SQL будет выглядеть примерно так:

SELECT * FROM TestDb WHERE ID > 2

Это возможно через GqlQuery()?

1 ответ

Решение

Автоматически назначенные идентификаторы не гарантируют, что они будут последовательными, поэтому, если вы хотите, чтобы упорядочивать свои объекты, вы должны либо назначить идентификаторы самостоятельно (что я бы не рекомендовал), либо отсортировать по другому свойству (возможно, метке времени создания?)

С учетом сказанного, вы можете фильтровать по идентификатору с помощью специального __key__ имущество. Смотрите ключевые фильтры.

Другие вопросы по тегам