$group (Agrupar Documentos)

Última atualização: 2026-10-09

$group (Agrupar Documentos)

$group agrupa documentos por uma chave especificada (_id) e aplica expressões de acumulador ($sum/$avg/$max...) por grupo. É o estágio de pipeline mais poderoso, equivalente ao GROUP BY do SQL. O _id pode ser um caminho de campo ("$field") ou uma expressão composta que define a chave de grupo.

CategoriaEstágios Principais
Versão do MongoDB1.0+
Idioma do Exemplomongosh (Shell)

📝 Sintaxe

{ $group: { _id: <chave-de-grupo>, <campo>: { <acumulador>: <expr> }, ... } }

▶ Exemplo

Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):

// $group: contagem e total por status
db.orders.aggregate([
  { $group: { _id: "$status", count: { $sum: 1 }, total: { $sum: "$amount" } } }
])

Saída:

{ "_id": "A", "count": 2, "total": 380 }
{ "_id": "B", "count": 1, "total": 130 }

📌 Notas

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

Q$group é totalmente equivalente ao GROUP BY do SQL?
AEquivalente no núcleo, mas mais flexível: _id pode ser qualquer expressão, e colunas não agregadas devem ser recuperadas via $first/$push em vez de selecionadas diretamente.
Q_id é obrigatório em $group?
ASim. _id define a chave de agrupamento e pode ser um campo, uma expressão ou um objeto composto; passar null agrega todos os documentos em um único grupo.
QA ordem dos campos de saída de $group é estável?
AO MongoDB não garante a ordem da saída de $group nem a sequência de agrupamento. Adicione um estágio $sort depois para impor a ordenação.
Web-Tutorial.com

Equipe Técnica Web-Tutorial

Uma plataforma de tutoriais mantida por diversos desenvolvedores. Cada tutorial é escrito e revisado por profissionais da área correspondente. Trabalhamos para manter nosso conteúdo preciso e confiável — se encontrar algum problema, avise-nos.

100%