

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
<a name="sortArray"></a>

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**  
`$sortArray`se 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, especifique `1` si son ascendentes o `-1` descendentes. 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)
<a name="sortArray-examples"></a>

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
<a name="sortArray-code"></a>

Para ver un ejemplo de código para usar el `$sortArray` comando, elija la pestaña correspondiente al idioma que desee usar:

------
#### [ Node.js ]

A continuación, se muestra un ejemplo del uso `$sortArray` del operador en una Node.js aplicación:

```
const { MongoClient } = require('mongodb');

async function sortArray() {
  const client = await MongoClient.connect('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false');
  const db = client.db('test');
  const collection = db.collection('miles');

  const result = await collection.aggregate([
    {
      $project: {
        _id: 1,
        member_since: 1,
        credit_card: 1,
        sorted_flight_miles: { $sortArray: { input: '$flight_miles', sortBy: 1 } }
      }
    }
  ]).toArray();

  console.log(result);
  client.close();
}

sortArray();
```

------
#### [ Python ]

Este es un ejemplo del uso del `$sortArray` operador en una aplicación de Python:

```
from pymongo import MongoClient

def sort_array():
    client = MongoClient('mongodb://<username>:<password>@<cluster-endpoint>:27017/?tls=true&tlsCAFile=global-bundle.pem&replicaSet=rs0&readPreference=secondaryPreferred&retryWrites=false')
    db = client.test
    collection = db.miles

    result = list(collection.aggregate([
        {
            '$project': {
                '_id': 1,
                'member_since': 1,
                'credit_card': 1,
                'sorted_flight_miles': { '$sortArray': { 'input': '$flight_miles', 'sortBy': 1 } }
            }
        }
    ]))

    print(result)
    client.close()

sort_array()
```

------