Ограничить и оценить количество групп в 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()