2016-04-23 2 views
2

Мои документы содержат 7 полей, один из которых - «город», значения - разные города. Когда я делаюОграничить и оценить количество групп в RethinkDB

r.db('base').table('table').group('city').count().run() 

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

Например, когда выходной ток запроса

{(u'Newtown Square',): 2, (u'Delhi',): 242, (u'Emeryville',): 19, (u'Chicago',): 96}, 

Я хотел бы новый один, чтобы дать

{(u'Delhi',): 242, (u'Chicago',): 96} 

Если возможно, я бы также хотел результат быть ранжированы по в порядке убывания.

ответ

2

Что-то вроде этого сделало бы это: r.db('base').table('table').group('city').count().ungroup().filter(function(row) { return row('reduction').ge(96); }).orderBy(r.desc('reduction')).

+0

Thx для ответа Люси. Ваш запрос возвращает синтаксическую ошибку, и я не понимаю ее достаточно хорошо, чтобы ее можно было изменить. – crocefisso

+0

Невозможно найти 'function' или' return' в документации RethinkDB. Что такое «сокращение»? Для записи я использую драйвер клиента Python. – crocefisso

+0

Хорошо, получилось, что ваш код был java. Когда я пел в python, он работал как шарм. – crocefisso

0

Python версии драйвера клиента:

r.db('base').table('table').group('city').count().ungroup().filter(lambda c: c['reduction'].ge(96)).order_by(r.desc('reduction')).run()