MongoDB Sortiraj rezultate upita

Mongodb Sortiraj Rezultate Upita



Gotovo svi sustavi baza podataka daju prednost sortiranju podataka prije nego što se dohvate, što ih razlikuje od drugih metoda pohrane podataka. MongoDB također ima različite načine za određivanje sortiranja podataka. Uglavnom koristimo metodu sort() za određivanje slijeda u kojem se dokument pojavljuje. Redoslijed niza prosljeđuje se kao parametar metodi sort(). Nakon jednog ili više polja koja sačinjavaju metodu sort() često slijedi ili vrijednost '1' ili '-1'. Metoda sort() čini upit čitljivijim, što poboljšava razumijevanje navedene zbirke.

Kako MongoDB sortira rezultate upita?

Metoda sortiranja uzima polje i njegovu pridruženu vrijednost kao jedan parametar. Metoda sortiranja prihvaća parametre u JSON formatu kao što je {Field: Value}. Višestruka polja i vrijednosti također se mogu unijeti u metodu sort() da bi se dobili sortirani dokumenti iz zbirke. Razmotrite sljedeći dokument u kojem smo u našu bazu podataka umetnuli mnoge druge dokumente. Naziv ove MongoDB baze podataka je 'Zaposlenici'. Zbirka “Zaposlenici” sadrži sve podatke o zaposlenicima prikazanim u nastavku.

db.Employees.insertMany([
{
'ime': 'Robert',
'DOB': '14-05-1993',
'Spol Muški',
'e-pošta': ' [email protected] ',
'odjel': 'Sigurnost',
'plaća' : 5000
},
{
'ime': 'kyle',
'DOB': '31-05-1999',
'ženski spol',
'e-pošta': ' [email protected] ',
'odjel': 'IT',
'plaća' : 6200
},
{
'ime': 'Matej',
'DOB': '26-04-1993',
'Spol Muški',
'e-pošta': ' [email protected] ',
'odjel': 'Računi',
'plaća' : 3500
},
{
'ime': 'Kevin',
'DOB': '14-07-1991',
'Spol Muški',
'e-pošta': ' [email protected] ',
'department': 'Sigurnost',
'plaća' : 4500
},

{
'ime': 'Julija',
'DOB': '09-12-2000',
'ženski spol',
'e-pošta': ' [email protected] ',
'odjel': 'IT',
'plaća' : 2500
}
])

Zbirka “Zaposlenik” umetnuta je s dostavljenim dokumentima čija je potvrda prikazana u sljedećem izlazu. Koristit ćemo ovaj dokument zbirke za prikaz funkcionalnosti rezultata upita sortiranja.









Primjer # 1: MongoDB nesortirana zbirka

Kada se upit za pretraživanje izvrši s metodom find(), uvijek daje nerazvrstanu zbirku dokumenata. Ovo može biti jasnije s dolje navedenim rezultatima upita.



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

Ovdje imamo upit kolekcije “Zaposlenik” s metodom find(). Metoda find() uzima prazan parametar zajedno s “_id:0”. Za jednostavniji rezultat, ID dokumenta uklanja se pomoću operatora “_id:0”. Prema zadanim postavkama dobivamo nesortirane zbirke kada se upit pretražuje metodom find(). Izlaz dohvaćen u nastavku su svi nerazvrstani dokumenti na način koji imamo u trenutku umetanja.





Primjer # 2: MongoDB Sortiraj rezultate upita uzlaznim redoslijedom

Sortirana kolekcija u MongoDB-u dobiva se korištenjem metode sort() koja se treba postaviti nakon metode find(). Metoda sort() u MongoDB-u uzima parametar koji je uključen uz naziv polja i redoslijed sortiranja dokumenta. Moramo unijeti '1' kao parametar u polje budući da ćemo dokumente dohvaćati uzlaznim redoslijedom u ovom primjeru. Sljedeće u upitu sortiranja rezultira uzlaznim redoslijedom.



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

Ovdje smo upotrijebili metodu sort() nakon traženog upita traženja. Metoda sort() koristi se za sortiranje polja 'name' uzlaznim redoslijedom jer se vrijednost '1' postavlja pored navedenog polja. Imajte na umu da ako metoda sort() nije navedena s bilo kojom parametarskom vrijednošću, zbirka neće biti sortirana. Izlaz metode sort() bit će dobiven prema zadanom redoslijedu. Rezultati metode sort() prema polju imena uzlaznim redoslijedom prikazani su u sljedećoj MongoDB ljusci.

Primjer # 3: MongoDB Sortiraj rezultate upita silaznim redoslijedom

Sada prikazujemo rezultate upita sortiranja MongoDB-a silaznim redoslijedom. Ova vrsta upita je ista kao gornji primjer, ali s jednom razlikom. Za silazni redoslijed, metoda sort() uzima vrijednost '-1' u odnosu na naziv stupca. Rezultati upita sortiranja silaznim redoslijedom dati su u nastavku.

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

Ovdje upit za pretraživanje počinje metodom find() koja pronalazi polje 'email' i vraća samo vrijednosti polja 'email'. Zatim smo naveli metodu sort() koja se koristi za sortiranje polja 'e-pošta', a vrijednost '-1' pored nje označava da će dobiveni rezultati sortiranja biti silaznim redoslijedom. Rezultati upita sortiranja silaznim redoslijedom dohvaćaju se nakon izvođenja u MongoDB ljusci.

Primjer # 4: MongoDB Sortiraj rezultate upita za više polja

Možemo sortirati višestruka polja u MongoDB metodom sort(). Polja koja se sortiraju trebaju biti deklarirana u metodi sort(). Razvrstavanje se temelji na redoslijedu deklaracije polja, a redoslijed sortiranja se ispituje slijeva na desno. Upit za razvrstavanje više polja trebao bi izgledati ovako:

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

Ovdje se prosljeđuje metoda sort() s poljima 'ime' i 'plaća' koja treba sortirati. Polje “ime” iz kolekcije “Zaposlenik” prvo se sortira jer je to polje prvog argumenta metode sort(). Zatim metoda sort() sortira polje drugog argumenta 'plaća'. Redoslijed oba polja je '1' što znači da će sortiranje biti uzlaznim redoslijedom. Izlaz za višestruka polja upita sortiranja generira se navedenim redoslijedom sortiranja u nastavku.

Primjer # 5: MongoDB sortiranje rezultata upita s metodom ograničenja

Nadalje, metoda sort() također se može kombinirati s metodom limit() koja daje ograničeni broj sortiranih dokumenata prema tom upitu za pretraživanje. Metoda limit() zahtijeva cijeli broj kao parametar, što ograničava broj dokumenata koji bi trebali biti uključeni u skup izlaza. Ispod je postavljen upit za pretraživanje koji najprije razvrstava dokument, a zatim daje navedene ograničene dokumente.

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

Ovdje imamo upit za pretraživanje koji započinje operaciju sortiranja za stupac 'odjel', a zatim za stupac 'DOB' uzlaznim redoslijedom pomoću metode sort(). Nakon što je sortiranje izvršeno, pored njega smo postavili metodu limit() za dohvaćanje ograničenog dokumenta. Metodi limit() dana je numerička vrijednost '4' što znači da prikazuje samo četiri sortirana dokumenta na izlazu kao što je prikazano na sljedećem ekranu:

Primjer # 6: MongoDB Sortiraj rezultate upita s agregacijom $sort

U svim gornjim primjerima izvršili smo sortiranje putem metode sort() MongoDB-a. Postoji još jedan način sortiranja u MongoDB-u koji se postiže putem agregacije $sort. Operator $sort sortira sve ulazne dokumente koji zatim sortirane dokumente vraća u cjevovod. Operator $sort primjenjuje se na zbirku 'Zaposlenici' u nastavku.

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

Ovdje smo pozvali agregatnu metodu unutar koje možemo upotrijebiti operator “$sort”. Zatim imamo operatorski izraz $sort koji sortira stupac 'plaće' uzlaznim redoslijedom i stupac 'id' silaznim redoslijedom. $sort agregacija primijenjena na polje daje sljedeće rezultate:

Primjer # 6: MongoDB sortiranje rezultata upita s metodom preskakanja

Metoda sort() također se može upariti s metodom skip(). Rezultirajući skup podataka može sadržavati određeni broj dokumenata koji će biti zanemareni pomoću metode skip(). Poput metode limit(), metoda skip() također prihvaća numeričku vrijednost koja označava broj dokumenata koje treba preskočiti. Kombinirali smo metodu sort() s metodom skip() u upitu sortiranja.

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

Ovdje smo upotrijebili metodu skip() pored metode sort(). Kada metoda sort() sortira dokumente, tada prosljeđuje izlaz sortiranja metodi sort(). Nakon toga je metoda skip() uklonila prva četiri sortirana dokumenta iz kolekcije.

Zaključak

Članak govori o sortiranju rezultata upita u MongoDB-u. U ovu svrhu koristili smo metodu sort() koja organizira zapise u određenom nizu. Također smo koristili metodu sort() za višestruko sortiranje u nekoliko polja. Metoda sort() se zatim uparuje s metodama limit() i skip() za sortirane dokumente pomoću ovih operacija. Dodatno, osigurali smo agregaciju $sort za rezultate upita sortiranja u MongoDB-u.