MongoDB Sort consente di ordinare i documenti in base a specifici parametri. L’output può essere in ordine crescente o de­cre­scen­te.

Cos’è Sort in MongoDB?

Nel sistema di gestione di database MongoDB, i dati vengono me­mo­riz­za­ti sotto forma di documenti all’interno di database che possono essere creati per mezzo del comando Create Database di MongoDB. Per avere una migliore visione d’insieme e dare un ordine logico ai documenti, è possibile or­ga­niz­za­re i file in raccolte e in­di­ciz­zar­li. Lo scopo di questo sistema, infatti, non è solo quello di me­mo­riz­za­re i dati, ma anche di renderli di­spo­ni­bi­li in qualsiasi momento.

Inoltre, per ot­ti­miz­za­re l’output, il sistema mette a di­spo­si­zio­ne MongoDB Sort, un metodo che serve a impostare l’ordine di vi­sua­liz­za­zio­ne dei documenti rendendo gli elenchi e le query ancora più veloci ed efficaci.

Consiglio

Nel nostro articolo di ap­pro­fon­di­men­to potete trovare un riepilogo dei comandi MongoDB.

Sintassi e fun­zio­na­li­tà di MongoDB Sort

Assieme a MongoDB Find, MongoDB Sort rap­pre­sen­ta 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:

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 clas­si­fi­ca­zio­ne mediante il parametro sort_order: il valore 1 cor­ri­spon­de a un ordine crescente, mentre -1 significa che l’ordine è de­cre­scen­te. In assenza di questo valore, MongoDB Sort emetterà au­to­ma­ti­ca­men­te i documenti in ordine crescente.

Esempi di MongoDB Sort

Per poter spiegare meglio come funziona MongoDB Sort e i suoi vari campi di ap­pli­ca­zio­ne, possiamo uti­liz­za­re alcuni semplici esempi. Per una migliore visione d’insieme e che includa in­for­ma­zio­ni relative al nome dell’ac­qui­ren­te e al numero di ordini, ipo­tiz­zia­mo un elenco di clienti che abbia soltanto tre voci. L’elenco si presenta così, privo di ordine:

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

Clas­si­fi­ca­zio­ne per nome

Per ordinare l’elenco in ordine al­fa­be­ti­co, si può usare MongoDB Sort. Nel nostro esempio, il risultato è questo:

>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 vi­sua­liz­za­re i nomi in ordine de­cre­scen­te, occorre ricorrere a MongoDB Sort nel modo seguente:

>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 }
>

Clas­si­fi­ca­zio­ne per ordine

Se si desidera ordinare i clienti in base alla frequenza degli ordini, partendo da chi ha ef­fet­tua­to il maggior numero di acquisti, il comando MongoDB Sort si pre­sen­te­rà così:

>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 }
>
Vai al menu prin­ci­pa­le