2013-08-16 3 views
0

Я пишу запрос, который включает фильтр неравенства.Заказ Google App Engine по свойству

query = my_model.all().filter('my_date <', given_date) 

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

Кто-нибудь знает, как я могу сортировать результаты по другому свойству.

ответ

1

Нет, эта документация верна.

Вы можете отсортировать результирующий набор в памяти.

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

2

Всегда есть «after-fetch-sort». Это может привести к неправильному списку (так как некоторые объекты могут быть не выбраны).

query = my_model.all().filter('my_date <', given_date).fetch() 
query.sort(key=lambda x: x.my_sort_property) 

не помню, но NDB может позволить вам заказать + фильтр, но не думаю, что так. Проверьте это, это все еще намного лучше старого API хранилища данных.