sort() (Ordenar Resultados)
Última atualização: 2026-10-09
sort() (Ordenar Resultados)
sort() ordena os resultados do cursor por campos dados: `db.users.find().sort({ age: 1, name: -1 })`. Os valores são 1 para ascendente e -1 para descendente, aplicados campo a campo. A ordenação roda no servidor — mais rápida quando respaldada por um índice; ordenações sem índice ordenam em memória e podem atingir o limite de 100MB.
| Categoria | Cursor |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
db.<collection>.find(<filter>).sort(<sortKey>)
⚙️ Parâmetros
| chave de ordenação | Mapeamento de campo para direção, por exemplo {age: 1, name: -1}. |
|---|
Retorno:O cursor ordenado pela chave de ordenação (encadeável).
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// sort: age ascendente depois name descendente, pega 3
const result = db.users.find()
.sort({ age: 1, name: -1 })
.limit(3)
.toArray()
result
Saída:
[
{ _id: ObjectId('64c8a1b20000000000000001'), name: 'Alice', age: 21 },
{ _id: ObjectId('64c8a1b20000000000000002'), name: 'Bob', age: 25 }
]
📌 Notas
- 1 é ascendente, -1 descendente; vários campos se aplicam da esquerda para a direita
- Ordenações respaldadas por índice têm o melhor desempenho
- Ordenações sem índice acima do limite de memória de 100MB geram erro; allowDiskUse() ajuda
🏷️ Tags Relacionados
💡 Casos Relacionados
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QO que significam 1 e -1 em sort?
A1 é ascendente, -1 descendente — {age: -1} ordena os mais velhos primeiro.
QComo ordeno por vários campos?
APasse vários campos na chave de ordenação, ex.: {age: 1, name: -1} — age primeiro, depois name.
QE se minha ordenação estiver lenta?
AAdicione um índice composto nos campos de ordenação; ordenações sem índice usam memória, e allowDiskUse() ajuda com resultados enormes.