

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

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

Baru dari versi 8.0

Tidak didukung oleh cluster elastis.

`$sortArray`Operator di Amazon DocumentDB mengurutkan elemen array. Untuk array nilai skalar, array diurutkan berdasarkan nilai elemen. Untuk array dokumen, array diurutkan berdasarkan bidang atau bidang yang ditentukan. Operator mengembalikan array diurutkan dalam urutan ascending (`1`) atau descending (`-1`).

**catatan**  
`$sortArray`didukung dalam `$project` tahap pipa agregasi dengan perencana kueri versi 3.

**Sintaksis**

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

**Parameter**
+ `input`: Array untuk mengurutkan.
+ `sortBy`: Urutan sortir. Untuk array nilai skalar, tentukan `1` untuk naik atau `-1` turun. Untuk larik dokumen, tentukan dokumen formulir `{ field: 1 }` atau `{ field: -1 }` untuk setiap bidang yang akan diurutkan berdasarkan.

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

Contoh berikut menunjukkan bagaimana menggunakan `$sortArray` operator untuk mengurutkan elemen array dalam urutan menaik.

**Buat dokumen sampel**

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

**Contoh kueri**

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

**Keluaran**

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

Dalam contoh ini, `$sortArray` operator mengurutkan `flight_miles` array dalam urutan menaik. `sorted_flight_miles`Bidang yang dihasilkan dalam output menunjukkan elemen array dalam urutan diurutkan.

## Contoh kode
<a name="sortArray-code"></a>

Untuk melihat contoh kode untuk menggunakan `$sortArray` perintah, pilih tab untuk bahasa yang ingin Anda gunakan:

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

Berikut adalah contoh penggunaan `$sortArray` operator dalam Node.js aplikasi:

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

Berikut adalah contoh penggunaan `$sortArray` operator dalam aplikasi 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()
```

------