Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.
$SortArray
Nuevo desde la versión 8.0
No es compatible con el clúster de Elastic.
El $sortArray operador de Amazon DocumentDB ordena los elementos de una matriz. En el caso de las matrices de valores escalares, la matriz se ordena por el valor del elemento. En el caso de las matrices de documentos, la matriz se ordena por el campo o los campos especificados. El operador devuelve la matriz ordenada en orden ascendente (1) o descendente (-1).
nota
$sortArrayse admite en la $project fase del proceso de agregación con la versión 3 del planificador de consultas.
Sintaxis
{ $sortArray: { input: <array>, sortBy: <sort specification> } }
Parámetros
-
input: La matriz que se va a ordenar. -
sortBy: El orden de clasificación. Para una matriz de valores escalares, especifique1si son ascendentes o-1descendentes. Para una matriz de documentos, especifique un documento del formulario{ field: 1 }o{ field: -1 }para cada campo por el que desee ordenar.
Ejemplo (MongoDB Shell)
El siguiente ejemplo muestra cómo utilizar el $sortArray operador para ordenar los elementos de una matriz en orden ascendente.
Cree documentos de muestra
db.miles.insertMany([ { "_id" : 1, "member_since" : ISODate("1987-01-01T00:00:00Z"), "credit_card" : false, "flight_miles" : [ 1205, 2560, 880 ]}, { "_id" : 2, "member_since" : ISODate("1982-01-01T00:00:00Z"), "credit_card" : true, "flight_miles" : [ 1205, 2560, 890, 2780]}, { "_id" : 3, "member_since" : ISODate("1999-01-01T00:00:00Z"), "credit_card" : true, "flight_miles" : [ 1205, 880]} ]);
Ejemplo de consulta
db.miles.aggregate([ { $project: { _id: 1, member_since: 1, credit_card: 1, sorted_flight_miles: { $sortArray: { input: "$flight_miles", sortBy: 1 } } } } ]);
Salida
{ "_id" : 1, "member_since" : ISODate("1987-01-01T00:00:00Z"), "credit_card" : false, "sorted_flight_miles" : [ 880, 1205, 2560 ] }
{ "_id" : 2, "member_since" : ISODate("1982-01-01T00:00:00Z"), "credit_card" : true, "sorted_flight_miles" : [ 890, 1205, 2560, 2780 ] }
{ "_id" : 3, "member_since" : ISODate("1999-01-01T00:00:00Z"), "credit_card" : true, "sorted_flight_miles" : [ 880, 1205 ] }
En este ejemplo, el $sortArray operador ordena la flight_miles matriz en orden ascendente. El sorted_flight_miles campo resultante de la salida muestra los elementos de la matriz ordenados.
Ejemplos de código
Para ver un ejemplo de código para usar el $sortArray comando, elija la pestaña correspondiente al idioma que desee usar: