Ограничить и оценить количество групп в RethinkDB

Мои документы содержат 7 полей, одно из них - "город", значения - разные города. Когда я делаю

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')),

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

r.db('base').table('table').group('city').count().ungroup().filter(lambda c: c['reduction'].ge(96)).order_by(r.desc('reduction')).run()
Другие вопросы по тегам