$reverseArray (agregação)
Nesta página
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:
{ "_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 }