

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# $SortArray
<a name="sortArray"></a>

Novo a partir da versão 8.0

Não é compatível com o cluster elástico.

O `$sortArray` operador no Amazon DocumentDB classifica os elementos de uma matriz. Para matrizes de valores escalares, a matriz é classificada pelo valor do elemento. Para matrizes de documentos, a matriz é classificada pelo campo ou campos especificados. O operador retorna a matriz classificada em ordem crescente (`1`) ou decrescente (`-1`).

**nota**  
`$sortArray`é suportado no `$project` estágio do pipeline de agregação com o planejador de consultas versão 3.

**Sintaxe**

```
{ $sortArray: { input: <array>, sortBy: <sort specification> } }
```

**Parâmetros**
+ `input`: A matriz a ser classificada.
+ `sortBy`: A ordem de classificação. Para uma matriz de valores escalares, especifique `1` para ascendente ou `-1` decrescente. Para uma matriz de documentos, especifique um documento do formulário `{ field: 1 }` ou `{ field: -1 }` de cada campo pelo qual classificar.

## Exemplo (MongoDB Shell)
<a name="sortArray-examples"></a>

O exemplo a seguir demonstra como usar o `$sortArray` operador para classificar os elementos de uma matriz em ordem crescente.

**Crie documentos de amostra**

```
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]}
]);
```

**Exemplo de consulta**

```
db.miles.aggregate([
  {
    $project: {
      _id: 1,
      member_since: 1,
      credit_card: 1,
      sorted_flight_miles: { $sortArray: { input: "$flight_miles", sortBy: 1 } }
    }
  }
]);
```

**Saída**

```
{ "_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 ] }
```

Neste exemplo, o `$sortArray` operador classifica a `flight_miles` matriz em ordem crescente. O `sorted_flight_miles` campo resultante na saída mostra os elementos da matriz em ordem ordenada.

## Exemplos de código
<a name="sortArray-code"></a>

Para ver um exemplo de código para usar o `$sortArray` comando, escolha a guia do idioma que você deseja usar:

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

Aqui está um exemplo de uso do `$sortArray` operador em um Node.js aplicativo:

```
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 ]

Aqui está um exemplo de uso do `$sortArray` operador em um aplicativo 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()
```

------