数据存储获得上一个/下一个appengine

时间:2010-06-30 22:20:40

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

在MySQL中,您可以获得下一个或上一个记录based on the key/id。 任何人都知道如何通过知道/传递密钥在app引擎(我使用python)中实现这一点?感谢

3 个答案:

答案 0 :(得分:2)

实体无法(默认情况下)知道下一个/上一个实体。

您可以做的一件事是为每个模型创建一个时间戳作为创建时间,然后获取下一个实体就像选择时间戳在XXX之后的第一个实体一样简单。

答案 1 :(得分:2)

假设通过'next / previous',你的意思是'具有按字典顺序排列的密钥的实体最接近给定密钥',是的,你可以使用查询来做到这一点。假设您的密钥在'my_key'中,并且您的模型名为MyModel,在Python中它的工作方式如下:

q = MyModel.all().filter('__key__ >', my_key)
next_entity = q.get()

q = MyModel.all().filter('__key__ <', my_key)
prev_entity = q.get()

答案 2 :(得分:1)

这对我有用:

q = Noticia.all().filter("tipo",tipo).filter('____key____ <', bookmark).order("-____key____")

next = q.get()

q = Noticia.all().filter("tipo",tipo).filter('____key____ >', bookmark)

prev = q.get()