Как указать идентификатор больше, чем <что-то> в предложении 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__
имущество. Смотрите ключевые фильтры.