Google App Engine: как определить местоположение сортировки для значения пользователя? - PullRequest
2 голосов
/ 24 февраля 2011

В моей Main модели у меня есть total_value, и я сортирую по этому значению. Когда пользователь вводит значение, я хочу сообщить ему порядок его total_value. Как мне это сделать?

Другими словами, если total_value в базе данных - 5,8,10,25 и пользователь вводит total_value из 15, как я могу сказать ему, что он будет на 4-м месте?

Спасибо!

Ответы [ 3 ]

2 голосов
/ 24 февраля 2011

Решения на основе подсчета, предложенные Дэвидом и Рахулом, будут эффективно работать только для небольшого числа организаций. Если вы хотите определить позицию внутри большого списка, вам нужно что-то вроде ranklist проекта.

2 голосов
/ 24 февраля 2011

Вам необходимо написать запрос, который подсчитывает количество значений меньше, чем пользователь total_value.Это может быть медленно, если существует много Main объектов.В этом случае вы можете посчитать только первые N значения меньшими, а затем остановиться (например, сообщить пользователю, что они имеют рейтинг 1000+).Ваш запрос может выглядеть так:

# get the rank of total_value compared to existing total_values (up to 1,000)
rank = Main.all().filter('total_value <', total_value).count(1000) + 1
1 голос
/ 24 февраля 2011

Вы можете получить количество объектов, у которых total_value меньше или равно текущим пользователям total_value.

Для этого можно использовать метод count () (для объекта Query).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...