group

O método group é outra ferramenta que temos no MongoDB para extrairmos informações agrupadas da nossa coleção, tais como média, soma, etc.

A sintaxe é:

db.collection.group({
  key: <CAMPO OU CAMPOS QUE AGRUPARÃO A COLLECTION>,
  reduce: <FUNÇÃO ONDE O AGRUPAMENTO SERÁ FEITO, RECEBE DOIS ARGUMENTOS, SENDO O DOCUMENTO ATUAL E O RESULTADO ACUMULADO>,
  initial: <INICIALIZA OS VALORES A SEREM UTILIZADOS>,
  keyf: <FUNÇÃO PARA CRIAR UMA NOVA CHAVE AGRUPADORA DINAMICAMENTE>,
  cond: <FILTRO QUE LIMITA QUAIS DOCUMENTOS SERÃO AGRUPADOS>,
  finalize: <FUNÇÃO QUE SERÁ EXECUTADA AO FINAL DO GROUP>,
})

Note que se o key for omitido, a colleção será agrupada como um todo, retornando um único documento como resposta. As opções keyf, cond e finalize são opcionais, e podem ser omitidas, se você não precisar delas.

O group não trabalha com colleções em shardings, então nesse caso, use o aggregation.