

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

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

Nuovo dalla versione 8.0

Non supportato dal cluster Elastic.

L'`$sortArray`operatore in Amazon DocumentDB ordina gli elementi di un array. Per gli array di valori scalari, l'array viene ordinato per valore dell'elemento. Per gli array di documenti, l'array viene ordinato in base al campo o ai campi specificati. L'operatore restituisce l'array ordinato in ordine crescente (`1`) o decrescente (). `-1`

**Nota**  
`$sortArray`è supportato nella `$project` fase della pipeline di aggregazione con la versione 3 di Query Planner.

**Sintassi**

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

**Parametri**
+ `input`: L'array da ordinare.
+ `sortBy`: Il criterio di ordinamento. Per una matrice di valori scalari, specificare `1` se è crescente o `-1` decrescente. Per una serie di documenti, specificate un documento del modulo `{ field: 1 }` o `{ field: -1 }` per ogni campo in base al quale ordinare.

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

L'esempio seguente mostra come utilizzare l'`$sortArray`operatore per ordinare gli elementi di un array in ordine crescente.

**Crea documenti di esempio**

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

**Esempio di interrogazione**

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

**Output**

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

In questo esempio, l'`$sortArray`operatore ordina l'`flight_miles`array in ordine crescente. Il `sorted_flight_miles` campo risultante nell'output mostra gli elementi dell'array in ordine ordinato.

## Esempi di codice
<a name="sortArray-code"></a>

Per visualizzare un esempio di codice per l'utilizzo del `$sortArray` comando, scegliete la scheda relativa alla lingua che desiderate utilizzare:

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

Ecco un esempio di utilizzo dell'`$sortArray`operatore in un' Node.js applicazione:

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

Ecco un esempio di utilizzo dell'`$sortArray`operatore in un'applicazione 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()
```

------