2014-12-16 2 views
0

Прочитал агрегирование mongodb и групповые документы, однако до сих пор неясно.MongoDB эквивалент SQL COUNT GROUP BY

Рассмотрим коллекцию документы:

{ а: 1, б: 0 }

{ а: 1, б: 1 }

{ а: 2, b: 2

{ a: 3, b: 3 }

Я хочу подсчитать количество документов для каждого значения a и сортировать по счету.

В реляционной стиле он будет выглядеть примерно так:

SELECT COUNT (отчетливый б) как общая сумма ОТ example_table GROUP BY в ORDER BY общего DESC;

Любые предложения о том, как это сделать в монго?

ответ

1

Вы сначала $group на _id:"$a" с $sum:{1} (это в основном ваш счет на отдельных а), то sort на сумму.

+1

db.so.aggregate ([{$ group: {_id: '$ a', count: {$ sum: 1}}}], {$ sort: {count: -1}}) – Abhi