$sort (Ordenar)
Última atualização: 2026-10-09
$sort (Ordenar)
$sort ordena os documentos do pipeline por campos especificados: 1 crescente, -1 decrescente, com ordenação por vários campos suportada. Coloque-o perto do fim, já que estágios intermediários podem reordenar documentos. Para ordenar com um índice, coloque $match primeiro. Ordenações grandes excedem o limite de memória padrão de 100MB e falham a menos que allowDiskUse esteja habilitado.
| Categoria | Estágios Principais |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $sort: { <campo1>: <1 ou -1>, <campo2>: <1 ou -1> } }
⚙️ Parâmetros
| chave de ordenação | Nomes de campo mapeados para 1 (crescente) ou -1 (decrescente); vários campos comparam na ordem escrita. |
|---|
Retorno:Fluxo de documentos ordenado
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $sort: maior pontuação primeiro, nome crescente em empates
db.scores.aggregate([
{ $sort: { score: -1, name: 1 } }
])
Saída:
{ "name": "Alice", "score": 98 }
{ "name": "Bob", "score": 92 }
📌 Notas
- Ordenações por vários campos comparam os campos na ordem escrita
- Ordenar acima de 100MB falha a menos que allowDiskUse esteja habilitado
- Siga $sort com $limit para construir consultas top-N
🏷️ Tags Relacionados
💡 Casos Relacionados
Pipelines de agregação avançados: expressões e transformações complexas
Introdução aos pipelines de agregação: o método `aggregate` e o estágio básico
$facet + $bucket + Pesquisa de texto/geoespacial
$lookup e associações com múltiplos conjuntos
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QComo $sort lida com vários campos?
AOs campos comparam na ordem escrita: primeiro pelo primeiro campo, depois pelo segundo quando os valores empatam.
Q$sort pode usar um índice?
AQuando a chave de ordenação corresponde a um índice e o estágio é o primeiro ou segue $match, o índice evita uma ordenação em memória.
QE se $sort atingir o limite de memória?
APasse allowDiskUse: true nas opções da agregação para descarregar em disco.