MongoDB Sortează rezultatele interogării

Mongodb Sorteaza Rezultatele Interogarii



Aproape toate sistemele de baze de date prioritizează sortarea datelor înainte de a fi preluate, ceea ce le diferențiază de alte metode de stocare a datelor. MongoDB are, de asemenea, diferite moduri de a determina cum să sortați datele. În mare parte, folosim metoda sort() pentru a determina secvența în care apare documentul. Ordinea secvenței este transmisă ca parametru la metoda sort(). Unul sau mai multe câmpuri care compun metoda sort() sunt frecvent urmate fie de o valoare „1”, fie de un „-1”. Metoda sort() face o interogare mai lizibilă, ceea ce îmbunătățește înțelegerea unei colecții specificate.

Cum sortează MongoDB rezultatele interogării?

Metoda de sortare ia câmpul și valoarea asociată acestuia ca un singur parametru. Metoda de sortare acceptă parametri în format JSON, cum ar fi {Field: Value}. Câmpurile și valorile multiple pot fi introduse și în metoda sort() pentru a obține documentele sortate din colecție. Luați în considerare următorul document în care am inserat multe alte documente în baza noastră de date. Numele acestei baze de date MongoDB se intitulează „Angajați”. Colecția „Angajați” conține toate informațiile angajaților prezentate mai jos.

db.Employees.insertMany([
{
'nume': 'Robert',
„DOB”: „14-05-1993”,
'genul masculin',
'e-mail': ' [e-mail protejat] ',
'departament': 'Securitate',
'salariu': 5000
},
{
„nume”: „kyle”,
„DOB”: „31-05-1999”,
'genul feminin',
'e-mail': ' [e-mail protejat] ',
„departament”: „IT”,
'salariu': 6200
},
{
'nume': 'Matei',
„DOB”: „26-04-1993”,
'genul masculin',
'e-mail': ' [e-mail protejat] ',
'department': 'Conturi',
'salariu': 3500
},
{
'nume': 'Kevin',
„DOB”: „14-07-1991”,
'genul masculin',
'e-mail': ' [e-mail protejat] ',
'department': 'Securitate',
'salariu': 4500
},

{
'nume': 'Julia',
„DOB”: „09-12-2000”,
'genul feminin',
'e-mail': ' [e-mail protejat] ',
„departament”: „IT”,
'salariu': 2500
}
])

Colecția „Angajat” este inserată cu documentele furnizate a căror confirmare este afișată în următoarea ieșire. Vom folosi acest document de colecție pentru a afișa funcționalitatea rezultatelor interogării de sortare.









Exemplul # 1: Colecția nesortată MongoDB

Când interogarea de căutare este executată cu metoda find(), aceasta oferă întotdeauna o colecție nesortată de documente. Acest lucru poate fi mai clar cu rezultatele interogării furnizate mai jos.



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

Aici, avem o interogare a colecției „Angajați” cu metoda find(). Metoda find() preia parametrul gol împreună cu „_id:0”. Pentru un rezultat mai simplu, ID-ul documentului este eliminat folosind operatorul „_id:0”. În mod implicit, obținem colecții nesortate atunci când interogarea este căutată cu metoda find(). Rezultatul preluat mai jos este toate documentele nesortate într-un mod pe care îl avem la momentul inserării.





Exemplul # 2: MongoDB Sortează rezultatele interogării în ordine crescătoare

Colecția sortată în MongoDB este obținută prin utilizarea metodei sort() care ar trebui plasată după metoda find(). Metoda sort() din MongoDB preia parametrul care este inclus cu numele câmpului și ordinea de sortare a documentului. Trebuie să introducem „1” ca parametru în câmp, deoarece vom prelua documentele în ordine crescătoare în acest exemplu particular. Următoarele rezultate în interogarea de sortare sunt în ordine crescătoare.



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

Aici, am folosit metoda sort() după interogarea de căutare find. Metoda sort() este folosită pentru a sorta câmpul „nume” în ordine crescătoare, deoarece valoarea „1” este plasată lângă câmpul specificat. Rețineți că dacă metoda sort() nu este specificată cu nicio valoare parametrică, atunci colecția nu va fi sortată. Ieșirea din metoda sort() va fi obținută în ordinea implicită. Rezultatele metodei sort() după câmpul de nume în ordine crescătoare sunt afișate în următorul shell MongoDB.

Exemplul # 3: MongoDB Sortează rezultatele interogării în ordine descrescătoare

Acum, arătăm rezultatele interogării de sortare ale MongoDB în ordine descrescătoare. Acest tip de interogare este același cu exemplul de mai sus, dar cu o singură diferență. Pentru ordinea descrescătoare, metoda sort() ia valoarea „-1” față de numele coloanei. Rezultatele interogării de sortare în ordine descrescătoare sunt prezentate mai jos.

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

Aici, interogarea de căutare începe cu metoda find() care găsește câmpul „e-mail” și returnează doar valorile câmpului „e-mail”. În continuare, am specificat metoda sort() care este folosită pentru sortarea câmpului „e-mail”, iar valoarea „-1” de lângă acesta indică faptul că rezultatele de sortare obținute vor fi în ordine descrescătoare. Rezultatele interogării de sortare în ordine descrescătoare sunt preluate după executarea acesteia în shell-ul MongoDB.

Exemplul # 4: MongoDB Sortează rezultatele interogării pentru mai multe câmpuri

Putem sorta mai multe câmpuri din MongoDB cu metoda sort(). Câmpurile de sortat trebuie declarate în metoda sort(). Sortarea se bazează pe ordinea de declarare a câmpurilor, iar ordinea de sortare este examinată de la stânga la dreapta. Interogarea pentru sortarea mai multor câmpuri ar trebui să arate astfel:

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

Aici, metoda sort() este transmisă cu câmpurile „nume” și „salariu” de sortat. Câmpul „nume” din colecția „Angajat” este sortat primul deoarece este primul câmp argument al metodei sort(). Apoi, metoda sort() sortează al doilea câmp de argument „salariu”. Ordinea ambelor câmpuri este „1”, ceea ce indică că sortarea va fi în ordine crescătoare. Ieșirea pentru mai multe câmpuri de interogare de sortare este generată în ordinea de sortare specificată mai jos.

Exemplul # 5: MongoDB Sortează rezultatele interogării cu metoda limită

Mai mult, metoda sort() se poate combina și cu metoda limit() care oferă un număr limitat de documente sortate după acea interogare de căutare. Metoda limit() necesită un număr întreg ca parametru, care limitează numărul de documente care ar trebui incluse în setul de ieșire. Interogarea de căutare este setată sub care mai întâi sortează documentul și apoi furnizează documentele limită specificate.

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

Aici avem interogarea de căutare care începe operația de sortare pentru coloana „departament” și apoi pentru coloana „DOB” în ordine crescătoare folosind metoda sort(). Odată ce sortarea este realizată, am plasat lângă ea metoda limit() pentru a prelua documentul limitat. Metodei limit() primește o valoare numerică „4”, ceea ce înseamnă că afișează doar patru documente sortate la ieșire, așa cum se arată în următorul ecran:

Exemplul # 6: MongoDB Sortează rezultatele interogării cu $sort Aggregation

În toate exemplele de mai sus, am efectuat sortarea prin metoda sort() a MongoDB. Există o altă modalitate de sortare în MongoDB care se realizează prin agregarea $sort. Operatorul $sort sortează toate documentele de intrare, care apoi returnează documentele sortate în conductă. Operatorul $sort este aplicat colecției „Angajați” de mai jos.

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

Aici, am apelat metoda agregată în care putem utiliza operatorul „$sort”. Apoi, avem expresia operatorului $sort care sortează coloana „salariu” în ordine crescătoare și coloana „id” în ordine descrescătoare. Agregarea $sort aplicată pe câmp oferă următoarele rezultate:

Exemplul # 6: MongoDB Sortează rezultatele interogării cu metoda Skip

Metoda sort() poate fi asociată și cu metoda skip(). Setul de date rezultat poate avea un anumit număr de documente care vor fi ignorate folosind metoda skip(). La fel ca metoda limit(), metoda skip() acceptă și valoarea numerică care indică numărul de documente care trebuie sărit. Am combinat metoda sort() cu metoda skip() în interogarea sortării.

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

Aici, am folosit metoda skip() lângă metoda sort(). Când metoda sort() sortează documentele, atunci trece rezultatul sortării la metoda sort(). După aceea, metoda skip() a eliminat primele patru documente sortate din colecție.

Concluzie

Articolul este despre rezultatele interogării de sortare în MongoDB. În acest scop am folosit metoda sort() care organizează înregistrările într-o secvență specificată. De asemenea, am folosit metoda sort() pentru sortarea multiplă în mai multe câmpuri. Metoda sort() este apoi asociată cu metodele limit() și skip() la documentele sortate folosind aceste operațiuni În plus, am furnizat agregarea $sort pentru rezultatele interogărilor de sortare în MongoDB.