$sortByCount (Ordenar por Contagem)
Última atualização: 2026-10-09
$sortByCount (Ordenar por Contagem)
$sortByCount é um atalho para $group mais $sort: ele agrupa pelo valor de uma expressão, conta documentos por grupo e emite { _id: valor, count: N } ordenado por contagem decrescente. Perfeito para frequência de palavras e rankings de categorias. Equivalente a $group com $sum: 1 seguido por $sort na contagem decrescente.
| Categoria | Estágios Principais |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $sortByCount: <expressão> }
⚙️ Parâmetros
| expressão de agrupamento | Expressão que determina a chave de agrupamento; uma referência de campo ou expressão calculada. |
|---|
Retorno:Fluxo de documentos { _id, count } ordenado por count decrescente
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $sortByCount: conta avaliações por nota
db.reviews.aggregate([
{ $sortByCount: '$rating' }
])
Saída:
{ "_id": 5, "count": 42 }
{ "_id": 4, "count": 31 }
📌 Notas
- A saída é fixa nos campos _id e count
- Os resultados são ordenados por contagem decrescente
- Um campo de array agrupa pelo array inteiro; use $unwind primeiro para contar por elemento
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QQual é a diferença entre $sortByCount e $group?
A$sortByCount é um atalho para $group mais $sort, fixo na saída _id/count ordenada por contagem decrescente.
QO resultado pode ser ordenado em ordem crescente?
ANão diretamente; escreva um $group simples mais $sort quando precisar de outra ordem.
QEle pode agrupar por vários campos?
APasse uma expressão de documento referenciando vários campos como chave de grupo.