MongoDB Ordina i risultati della query

Mongodb Ordina I Risultati Della Query



Quasi tutti i sistemi di database assegnano la priorità all'ordinamento dei dati prima che vengano recuperati, il che li distingue dagli altri metodi di archiviazione dei dati. MongoDB ha anche vari modi per determinare come ordinare i dati. Principalmente, usiamo il metodo sort() per determinare la sequenza in cui appare il documento. L'ordine della sequenza viene passato come parametro al metodo sort(). Gli uno o più campi che compongono il metodo sort() sono spesso seguiti da un valore '1' o da un '-1'. Il metodo sort() rende una query più leggibile, il che migliora la comprensione di una raccolta specificata.

In che modo MongoDB ordina i risultati delle query?

Il metodo sort prende il campo e il suo valore associato come singolo parametro. Il metodo sort accetta parametri nel formato JSON come {Field: Value}. I campi e i valori multipli possono anche essere inseriti nel metodo sort() per ottenere i documenti ordinati dalla raccolta. Considera il seguente documento in cui abbiamo inserito molti altri documenti nel nostro database. Il nome di questo database MongoDB è intitolato 'Dipendenti'. La raccolta “Dipendenti” contiene tutte le informazioni dei dipendenti mostrate di seguito.

db.Employees.insertMany([
{
'nome': 'Roberto',
'DOB': '14-05-1993',
'genere maschile',
'e-mail': ' [e-mail protetta] ',
'dipartimento': 'Sicurezza',
'stipendio': 5000
},
{
'nome': 'kyle',
'DOB': '31-05-1999',
'genere femminile',
'e-mail': ' [e-mail protetta] ',
'dipartimento': 'informatica',
'stipendio': 6200
},
{
'nome': 'Matteo',
'DOB': '26-04-1993',
'genere maschile',
'e-mail': ' [e-mail protetta] ',
'dipartimento': 'Account',
'stipendio': 3500
},
{
'nome': 'Kevin',
'DOB': '14-07-1991',
'genere maschile',
'e-mail': ' [e-mail protetta] ',
'dipartimento': 'Sicurezza',
'stipendio': 4500
},

{
'nome': 'Giulia',
'DOB': '09-12-2000',
'genere femminile',
'e-mail': ' [e-mail protetta] ',
'dipartimento': 'informatica',
'stipendio': 2500
}
])

Viene inserita la collection “Dipendente” con i documenti forniti la cui conferma è riportata nel seguente output. Utilizzeremo questo documento di raccolta per mostrare la funzionalità dei risultati della query di ordinamento.









Esempio n. 1: raccolta non ordinata MongoDB

Quando la query di ricerca viene eseguita con il metodo find(), restituisce sempre una raccolta di documenti non ordinata. Questo può essere più chiaro con i risultati della query forniti di seguito.



>db.Employees.find({},{_id:0})

Qui abbiamo una query della collezione “Employee” con il metodo find(). Il metodo find() accetta il parametro vuoto insieme a '_id:0'. Per un risultato più semplice, l'ID documento viene rimosso utilizzando l'operatore '_id:0'. Per impostazione predefinita, otteniamo raccolte non ordinate quando la query viene cercata con il metodo find(). L'output recuperato di seguito è costituito da tutti i documenti non ordinati in un modo che abbiamo al momento dell'inserimento.





Esempio n. 2: risultati della query di ordinamento MongoDB in ordine crescente

La raccolta ordinata in MongoDB si ottiene utilizzando il metodo sort() che va posizionato dopo il metodo find(). Il metodo sort() in MongoDB accetta il parametro incluso nel nome del campo e l'ordine di ordinamento del documento. Dobbiamo inserire '1' come parametro nel campo poiché recupereremo i documenti in ordine crescente in questo particolare esempio. Quanto segue nella query di ordinamento risulta in ordine crescente.



>db.Employees.find().sort({nome:1})

Qui, abbiamo utilizzato il metodo sort() dopo la query di ricerca find. Il metodo sort() viene utilizzato per ordinare il campo 'nome' in ordine crescente poiché il valore '1' viene posizionato accanto al campo specificato. Si noti che se il metodo sort() non è specificato con alcun valore parametrico, la raccolta non verrà ordinata. L'output del metodo sort() verrà ottenuto nell'ordine predefinito. I risultati del campo metodo sort() per nome in ordine crescente vengono visualizzati nella seguente shell MongoDB.

Esempio n. 3: risultati della query di ordinamento MongoDB in ordine decrescente

Ora, stiamo mostrando i risultati della query di ordinamento del MongoDB in ordine decrescente. Questo tipo di query è uguale all'esempio precedente ma con una differenza. Per l'ordine decrescente, il metodo sort() assume il valore '-1' rispetto al nome della colonna. Di seguito sono riportati i risultati della query di ordinamento in ordine decrescente.

>db.Employees.find({},{'email':1,_id:0}).sort({'email':-1})

Qui, la query di ricerca inizia con il metodo find() che trova il campo 'email' e restituisce solo i valori del campo 'email'. Successivamente, abbiamo specificato il metodo sort() utilizzato per ordinare il campo 'email' e il valore '-1' accanto ad esso indica che i risultati dell'ordinamento ottenuti saranno in ordine decrescente. I risultati della query di ordinamento in ordine decrescente vengono recuperati dopo l'esecuzione nella shell MongoDB.

Esempio n. 4: MongoDB ordina i risultati della query per più campi

Possiamo ordinare i campi multipli in MongoDB con il metodo sort(). I campi da ordinare devono essere dichiarati nel metodo sort(). L'ordinamento si basa sull'ordine di dichiarazione dei campi e l'ordinamento viene esaminato da sinistra verso destra. La query per ordinare i campi multipli dovrebbe essere simile a questa:

>db.Employees.find({},{_id:0}).sort({'name':1,'salario':1})

Qui, il metodo sort() viene passato con i campi “name” e “salary” da ordinare. Il campo 'name' della raccolta 'Employee' viene ordinato per primo perché è il primo campo argomento del metodo sort(). Quindi, il metodo sort() ordina il secondo campo argomento 'stipendio'. L'ordine di entrambi i campi è '1' che indica che l'ordinamento sarà in ordine crescente. L'output per più campi della query di ordinamento viene generato nell'ordine di ordinamento specificato di seguito.

Esempio n. 5: MongoDB Ordina i risultati della query con il metodo Limit

Inoltre, il metodo sort() può anche combinarsi con il metodo limit() che fornisce il numero limitato di documenti ordinati in base a quella query di ricerca. Il metodo limit() richiede un numero intero come parametro, che limita il numero di documenti da includere nel set di output. La query di ricerca è impostata al di sotto della quale prima ordina il documento e quindi fornisce i documenti limite specificati.

>db.Employees.find({},{_id:0}).sort({'department':1,'DOB':1}).limit(4).pretty()

Qui abbiamo la query di ricerca che inizia l'operazione di ordinamento per la colonna 'department' e quindi per la colonna 'DOB' in ordine crescente utilizzando il metodo sort(). Una volta completato l'ordinamento, abbiamo posizionato accanto ad esso il metodo limit() per il recupero del documento limitato. Al metodo limit() viene assegnato un valore numerico '4', il che significa che visualizza solo quattro documenti ordinati nell'output, come mostrato nella schermata seguente:

Esempio n. 6: MongoDB ordina i risultati della query con $sort Aggregation

In tutti gli esempi precedenti, abbiamo eseguito l'ordinamento tramite il metodo sort() di MongoDB. Esiste un altro modo di ordinare in MongoDB che si ottiene tramite l'aggregazione $sort. L'operatore $sort ordina tutti i documenti di input che quindi restituiscono i documenti ordinati alla pipeline. L'operatore $sort viene applicato alla raccolta 'Dipendenti' di seguito.

db.Employees.aggregate([ { $sort : { stipendio : 1, _id: -1 } } ])

Qui, abbiamo richiamato il metodo aggregato all'interno del quale possiamo utilizzare l'operatore '$sort'. Quindi, abbiamo l'espressione dell'operatore $sort che ordina la colonna 'stipendio' in ordine crescente e la colonna 'id' in ordine decrescente. L'aggregazione $sort applicata al campo genera i seguenti risultati:

Esempio n. 6: MongoDB Ordina i risultati della query con il metodo Skip

Il metodo sort() può anche essere associato al metodo skip(). Il set di dati risultante può avere un certo numero di documenti che verranno ignorati utilizzando il metodo skip(). Come il metodo limit(), anche il metodo skip() accetta il valore numerico che indica il numero di documenti da saltare. Abbiamo combinato il metodo sort() con il metodo skip() nella query di ordinamento.

>db.Employees.find({},{_id:0}).sort({'stipendio':1}).skip(4).pretty()

Qui abbiamo utilizzato il metodo skip() accanto al metodo sort(). Quando il metodo sort() ordina i documenti, passa l'output dell'ordinamento al metodo sort(). Successivamente, il metodo skip() ha rimosso i primi quattro documenti ordinati dalla raccolta.

Conclusione

L'articolo riguarda i risultati della query di ordinamento in MongoDB. Abbiamo utilizzato il metodo sort() per questo scopo che organizza i record in una sequenza specificata. Abbiamo anche utilizzato il metodo sort() per l'ordinamento multiplo su più campi. Il metodo sort() viene quindi associato ai metodi limit() e skip() ai documenti ordinati utilizzando queste operazioni. Inoltre, abbiamo fornito l'aggregazione $sort per i risultati delle query di ordinamento in MongoDB.