Как запросить в магазине приложений Google Blobs по дате создания и упорядочить результаты - PullRequest
2 голосов
/ 21 августа 2011

Мне нужно получить последний набор файлов из магазина блогов GAE. В настоящее время мой код говорит

nDays = 10 #this is set at run time
gqlQuery = blobstore.BlobInfo.gql("WHERE filename = :1 ORDER BY creation DESC",<filename>)
cursor = gqlQuery.fetch(nDays)

когда я выполняю итерацию и распечатываю данные, вызывая курсор [i] .creation, он не дает мне последние nDays, начиная с сегодняшнего дня. Например, сегодня 20 августа. Я ожидаю, что он даст мне данные с 11 августа по 20 августа (у меня есть файл на каждый день). Вместо этого он возвращает мне данные за 13 дней за несколько дней.

Если я удаляю ORDER BY в gqlquery, он корректно возвращает все результаты (не отсортированные). Если я сделаю gqlQuery повторяемым, чтобы я сказал что-то вроде

for filename in gqlQuery:
    print filename.creation

печатается только с 13 августа до нескольких дней (около 8 дней). Я точно знаю, что есть данные до сегодняшнего дня. Из GAE я могу просматривать данные. Кроме того, Google автоматически помечает дату создания, когда файл загружается в blobstore.

Кто-нибудь знает, что мне не хватает?

1 Ответ

0 голосов
/ 22 августа 2011

Я также могу что-то пропустить, но какова цель "filename =: 1" в вашем запросе?

Это правильно работает с моим магазином:

gqlQuery = blobstore.BlobInfo.gql("ORDER BY creation DESC")
blobs = gqlQuery.fetch(5)
self.response.headers['Content-Type'] = 'text/html'
self.response.out.write("Lasts blobs<br>")
for blob in blobs:
    self.response.out.write(blob.filename + "<br>")

Florent

...