Definição
$reverseArray
Aceita uma expressão de array como um argumento e retorna um array com os elementos em ordem inversa.
$reverseArray
tem a seguintesintaxe de expressão do operador :{ $reverseArray: <array expression> } O argumento pode ser qualquer expressão válida, desde que seja resolvido para um array.
Comportamento
Se o argumento for resolvido para um valor de null
ou se referir a um campo ausente, $reverseArray
retornará null
.
Se o argumento não se resolver em uma array ou null
nem se referir a um campo ausente, $reverseArray
retornará um erro.
$reverseArray
retorna um array vazio quando o argumento é um array vazio.
Se o argumento contiver sub-arrays, $reverseArray
somente operará nos elementos do array de nível superior e não reverterá o conteúdo de sub-arrays.
Exemplo [1] | Resultados | |||
---|---|---|---|---|
|
| |||
|
| |||
|
| |||
|
| |||
|
|
[1] | Os exemplos na tabela usam um argumento literal. Para evitar analisar ambiguidade se o argumento literal for uma array, encapsule o array literal em uma expressão $literal ou mantenha o array externo que designa a lista de argumentos (por exemplo, [ [ 1, 2, 3 ]
] ) para passar o array literal [1, 2, 3] . |
Exemplo
Uma coleção chamada users
contém os seguintes documentos:
db.users.insertMany( [ { _id: 1, name: "dave123", favorites: [ "chocolate", "cake", "butter", "apples" ] }, { _id: 2, name: "li", favorites: [ "apples", "pudding", "pie" ] }, { _id: 3, name: "ahn", favorites: [ ] }, { _id: 4, name: "ty" } ] )
O exemplo seguinte retorna um array contendo os elementos do array favorites
em ordem reversa:
db.users.aggregate([ { $project: { name: 1, reverseFavorites: { $reverseArray: "$favorites" } } } ])
A operação retorna os seguintes resultados:
[ { _id: 1, name: "dave123", reverseFavorites: [ "apples", "butter", "cake", "chocolate" ] }, { _id: 2, name: "li", reverseFavorites: [ "pie", "pudding", "apples" ] }, { _id: 3, name: "ahn", reverseFavorites: [ ] }, { _id: 4, name: "ty", reverseFavorites: null }, ]