$reverseArray (Inverter a Ordem do Array)
Última atualização: 2026-10-09
$reverseArray (Inverter a Ordem do Array)
$reverseArray inverte a ordem dos elementos em um array e retorna um array novo. Usos típicos incluem virar registros em ordem cronológica ascendente para ordem descendente e colocar a mensagem mais recente primeiro. Ele inverte apenas o array externo; arrays aninhados mantêm sua ordem interna. Argumentos que não são array geravam erro antes do MongoDB 5.0 e retornam null depois disso, então proteja campos incertos com $isArray.
| Categoria | Array |
|---|---|
| Versão do MongoDB | 1.0+ |
| Idioma do Exemplo | mongosh (Shell) |
📝 Sintaxe
{ $reverseArray: <array> }
⚙️ Parâmetros
| array | A expressão de matriz a inverter. |
|---|
Retorno:Uma nova matriz em ordem inversa; argumentos que não são matriz resultam em null ou lançam erro dependendo da versão
▶ Exemplo
Execute os comandos abaixo no seu mongosh local (requer um mongod em execução):
// $reverseArray: mensagem mais recente primeiro
db.chats.aggregate([
{ $project: {
latestFirst: { $reverseArray: '$messages' }
} }
])
Saída:
{ '_id': 1, 'latestFirst': [ 'm3', 'm2', 'm1' ] }
📌 Notas
- Retorna um array novo; o campo de origem não é alterado
- Apenas o array externo é invertido; arrays aninhados mantêm sua ordem
- Argumentos que não são array retornam null desde a 5.0, mas geravam erro antes; cuidado ao atualizar
🏷️ Tags Relacionados
💡 Casos Relacionados
Mais casos práticos em breve.
📚 Tutoriais Relacionados
❓ Perguntas Frequentes
QO $reverseArray modifica o array original?
ANão — expressões de agregação são puras; ele retorna um array novo.
QE argumentos que não são array?
AGeram erro antes da 5.0, retornam null desde a 5.0; verifique com $isArray antes.
QArrays aninhados também são invertidos?
AApenas a camada externa é invertida; arrays internos mantêm sua ordem.