# MongoDB Sort: come impostare l’ordine di output dei dati

MongoDB Sort consente di ordinare i documenti in base a specifici parametri. L’output può essere in ordine crescente o decrescente.

## Cos’è Sort in MongoDB?

Nel [sistema di gestione di database](https://www.ionos.it/digitalguide/hosting/tecniche-hosting/sistema-di-gestione-di-base-di-dati-dbms/ "Sistema di gestione di base di dati (DBMS)") [MongoDB](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/mongodb-presentazione-e-confronto-con-mysql/ "MongoDB: presentazione e confronto con MySQL"), i dati vengono memorizzati sotto forma di documenti all’interno di database che possono essere creati per mezzo del comando [Create Database di MongoDB](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/mongodb-create-database/ "MongoDB Create Database"). Per avere una migliore visione d’insieme e dare un ordine logico ai documenti, è possibile organizzare i file in raccolte e indicizzarli. Lo scopo di questo sistema, infatti, non è solo quello di memorizzare i dati, ma anche di renderli disponibili in qualsiasi momento.

Inoltre, per **ottimizzare l’output**, il sistema mette a disposizione MongoDB Sort, un metodo che serve a impostare l’ordine di visualizzazione dei documenti rendendo gli elenchi e le query ancora più veloci ed efficaci.

Consiglio Nel nostro articolo di approfondimento potete trovare un riepilogo dei [comandi MongoDB](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/comandi-di-mongodb/ "Comandi di MongoDB").

## Sintassi e funzionalità di MongoDB Sort

Assieme a [MongoDB Find](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/mongodb-find/ "MongoDB Find"), MongoDB Sort rappresenta un altro metodo che risulta spesso utile quando si lavora con il database. Le due funzioni possono anche essere combinate tra loro. In questo caso, la sintassi di base è la seguente:

```none
db.collection_name.find().sort({field_name: sort_order})
```

In aggiunta al comando MongoDB Sort vero e proprio, il quale deve contenere il nome della raccolta, esiste un altro parametro. Si tratta di un documento che determina il criterio con cui il sistema deve ordinare i documenti. Inoltre, è possibile stabilire la **direzione della classificazione** mediante il parametro *sort\_order*: il valore 1 corrisponde a un ordine crescente, mentre -1 significa che l’ordine è decrescente. In assenza di questo valore, MongoDB Sort emetterà automaticamente i documenti in ordine crescente.

## Esempi di MongoDB Sort

Per poter spiegare meglio come funziona MongoDB Sort e i suoi vari campi di applicazione, possiamo utilizzare alcuni semplici esempi. Per una migliore visione d’insieme e che includa informazioni relative al nome dell’acquirente e al numero di ordini, ipotizziamo un elenco di clienti che abbia soltanto tre voci. L’elenco si presenta così, privo di ordine:

```none
>db.elencoclienti.find()
{ _id : ObjectID ( "409f288c184f9132cd772c1" ), "name" : "Isaia", "purchases" : 2 },
{ _id : ObjectID ( "409f288c184f9132cd772c2" ), "name" : "Torre", "purchases" : 1 },
{ _id : ObjectID ( "409f288c184f9132cd772c3" ), "name" : "Bellini", "purchases" : 4 }
>
```

### Classificazione per nome

Per ordinare l’elenco in ordine alfabetico, si può usare MongoDB Sort. Nel nostro esempio, il risultato è questo:

```none
>db.elencoclienti.find().sort({name : 1})
{ _id : ObjectID ( "409f288c184f9132cd772c3" ), "name" : "Bellini", "purchases" : 4 },
{ _id : ObjectID ( "409f288c184f9132cd772c1" ), "name" : "Isaia", "purchases" : 2 },
{ _id : ObjectID ( "409f288c184f9132cd772c2" ), "name" : "Torre", "purchases" : 1 }
>
```

Per visualizzare i nomi in ordine decrescente, occorre ricorrere a MongoDB Sort nel modo seguente:

```none
>db.elencoclienti.find().sort({name : -1})
{ _id : ObjectID ( "409f288c184f9132cd772c2" ), "name" : "Torre", "purchases" : 1 },
{ _id : ObjectID ( "409f288c184f9132cd772c1" ), "name" : "Isaia", "purchases" : 2 },
{ _id : ObjectID ( "409f288c184f9132cd772c3" ), "name" : "Bellini", "purchases" : 4 }
>
```

### Classificazione per ordine

Se si desidera ordinare i clienti in base alla frequenza degli ordini, partendo da chi ha effettuato il maggior numero di acquisti, il comando MongoDB Sort si presenterà così:

```none
>db.elencoclienti.find().sort({purchases : -1})
{ _id : ObjectID ( "409f288c184f9132cd772c3" ), "name" : "Bellini", "purchases" : 4 },
{ _id : ObjectID ( "409f288c184f9132cd772c1" ), "name" : "Isaia", "purchases" : 2 },
{ _id : ObjectID ( "409f288c184f9132cd772c2" ), "name" : "Torre", "purchases" : 1 }
>
```


This is a markdown version of: [https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/mongodb-sort/](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/mongodb-sort/) for AI/LLM consumption.