$sortArray (Ordenar Elementos Dentro do Array)

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

$sortArray (Ordenar Elementos Dentro do Array)

$sortArray ordena os elementos dentro de um array e é novo no MongoDB 5.2. Arrays escalares usam um 1 simples (crescente) ou -1 (decrescente); arrays de objetos especificam chaves de ordenação com { campo: 1/-1 } ou a forma de array [ [ 'campo', 1 ] ] para ordenação por múltiplas chaves. Usos típicos: ordenar comentários por tempo decrescente ou produtos por preço crescente antes da exibição. Retorna um array novo sem mutar a origem; um objeto sortBy vazio gera erro.

CategoriaArray
Versão do MongoDB1.0+
Idioma do Exemplomongosh (Shell)

📝 Sintaxe

{ $sortArray: { input: <array>, sortBy: <especificação de ordenação> } }

⚙️ Parâmetros

inputA matriz a ordenar.
sortByA especificação de ordenação: 1/-1 para matrizes escalares; { field: 1/-1 } ou [ [ 'field', 1 ] ] para matrizes de objetos.

Retorno:Uma nova matriz com elementos ordenados

▶ Exemplo

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

// $sortArray: ordenar itens por preço crescente
db.orders.aggregate([
  { $project: {
      sorted: { $sortArray: { input: '$items', sortBy: { price: 1 } } }
  } }
])

Saída:

{ '_id': 1, 'sorted': [ { 'sku': 'B', 'price': 5 }, { 'sku': 'A', 'price': 9 } ] }

📌 Notas

Mais casos práticos em breve.

📚 Tutoriais Relacionados

❓ Perguntas Frequentes

QO $sortArray suporta ordenação por múltiplos campos?
ASim — use a forma [ [ 'campo1', 1 ], [ 'campo2', -1 ] ].
QFunciona em versões antigas do MongoDB?
ANovo na 5.2; em versões mais antigas use $unwind, ordene com $sort e depois re-agrupe.
QPara onde vão os elementos sem a chave?
AEles vão para o fim do array.
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%