хранилище данных получить предыдущий / следующий appengine - PullRequest
0 голосов
/ 01 июля 2010

В MySQL вы можете получить следующую или предыдущую запись на основе ключа / id .Кто-нибудь знает, как я могу достичь этого в движке приложения (я использую Python), только зная / передавая ключ?Спасибо

Ответы [ 3 ]

2 голосов
/ 01 июля 2010

Предполагая, что под «следующим / предыдущим» вы подразумеваете «сущность с ключом, который лексикографически ближе всего к данному ключу», да, вы можете сделать это с помощью запросов. Предположим, ваш ключ находится в «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 голосов
/ 01 июля 2010

У сущности нет способа (по умолчанию) узнать следующую / предыдущую сущность.

Одна вещь, которую вы могли бы сделать, это дать каждой модели временную метку на время их создания, а затем получить следующую сущность.так же просто, как выбрать первый объект, чья временная метка находится после XXX.

1 голос
/ 23 марта 2011

Это сработало для меня:

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()
...