Rezultati poizvedbe za razvrščanje MongoDB

Rezultati Poizvedbe Za Razvrscanje Mongodb



Skoraj vsi sistemi baz podatkov dajejo prednost razvrščanju podatkov, preden jih pridobijo, kar jih loči od drugih metod shranjevanja podatkov. MongoDB ima tudi različne načine za določanje, kako razvrstiti podatke. Večinoma uporabljamo metodo sort(), da določimo zaporedje, v katerem se pojavi dokument. Vrstni red zaporedja se kot parameter posreduje metodi sort(). Enemu ali več poljem, ki sestavljajo metodo sort(), pogosto sledi vrednost »1« ali »-1«. Metoda sort() naredi poizvedbo bolj berljivo, kar izboljša razumevanje določene zbirke.

Kako MongoDB razvrsti rezultate poizvedbe?

Metoda razvrščanja vzame polje in z njim povezano vrednost kot en sam parameter. Metoda razvrščanja sprejema parametre v formatu JSON, kot je {Field: Value}. Več polj in vrednosti lahko vnesete tudi v metodo sort(), da pridobite razvrščene dokumente iz zbirke. Razmislite o naslednjem dokumentu, v katerem smo v našo zbirko podatkov vstavili številne druge dokumente. Ime te zbirke podatkov MongoDB je naslovljeno »Zaposleni«. Zbirka »Zaposleni« vsebuje vse podatke o zaposlenih, prikazanih spodaj.

db.Employees.insertMany([
{
'ime': 'Robert',
'DOB': '14-05-1993',
'moški spol',
'E-naslov': ' [email protected] ',
'oddelek': 'Varnost',
'plača': 5000
},
{
'ime': 'kyle',
'DOB': '31-05-1999',
'spol': 'ženska',
'E-naslov': ' [email protected] ',
'oddelek': 'IT',
'plača': 6200
},
{
'ime': 'Matej',
'DOB': '26-04-1993',
'moški spol',
'E-naslov': ' [email protected] ',
'department': 'Računi',
'plača': 3500
},
{
'ime': 'Kevin',
'DOB': '14-07-1991',
'moški spol',
'E-naslov': ' [email protected] ',
'department': 'Varnost',
'plača': 4500
},

{
'ime': 'Julija',
'DOB': '09-12-2000',
'spol': 'ženska',
'E-naslov': ' [email protected] ',
'oddelek': 'IT',
'plača' : 2500
}
])

Zbirka »Zaposleni« je vstavljena z predloženimi dokumenti, katerih potrditev je prikazana v naslednjem izpisu. Ta zbirni dokument bomo uporabili za prikaz funkcionalnosti rezultatov poizvedbe za razvrščanje.









Primer št. 1: Nerazvrščena zbirka MongoDB

Ko se iskalna poizvedba izvede z metodo find(), vedno prikaže nerazvrščeno zbirko dokumentov. To je lahko jasnejše s spodnjimi rezultati poizvedbe.



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

Tukaj imamo poizvedbo zbirke »Zaposleni« z metodo find(). Metoda find() vzame prazen parameter skupaj z »_id:0«. Za enostavnejši rezultat se ID dokumenta odstrani z uporabo operatorja »_id:0«. Privzeto pridobimo nerazvrščene zbirke, ko poizvedbo iščemo z metodo find(). Izhod, pridobljen spodaj, so vsi nerazvrščeni dokumenti na način, ki ga imamo v času vstavljanja.





Primer št. 2: Razvrščanje rezultatov poizvedbe MongoDB v naraščajočem vrstnem redu

Razvrščeno zbirko v MongoDB pridobimo z uporabo metode sort(), ki mora biti postavljena za metodo find(). Metoda sort() v MongoDB prevzame parameter, ki je vključen v ime polja in vrstni red razvrščanja dokumenta. V polje moramo vnesti '1' kot parameter, saj bomo v tem primeru pridobili dokumente v naraščajočem vrstnem redu. Naslednji rezultati v poizvedbi za razvrščanje so v naraščajočem vrstnem redu.



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

Tukaj smo uporabili metodo sort() po iskalni poizvedbi find. Metoda sort() se uporablja za razvrščanje polja »ime« v naraščajočem vrstnem redu, saj je vrednost »1« postavljena poleg navedenega polja. Upoštevajte, da zbirka ne bo razvrščena, če metoda sort() ni podana z nobeno parametrično vrednostjo. Izhod metode sort() bo pridobljen v privzetem vrstnem redu. Rezultati metode sort() po polju z imenom v naraščajočem vrstnem redu so prikazani v naslednji lupini MongoDB.

Primer # 3: MongoDB razvrsti rezultate poizvedbe v padajočem vrstnem redu

Zdaj prikazujemo rezultate poizvedbe za razvrščanje MongoDB v padajočem vrstnem redu. Ta vrsta poizvedbe je enaka zgornjemu primeru, vendar z eno razliko. Za padajoči vrstni red ima metoda sort() vrednost »-1« glede na ime stolpca. Spodaj so podani rezultati poizvedbe za razvrščanje v padajočem vrstnem redu.

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

Tu se iskalna poizvedba začne z metodo find(), ki najde polje »email« in vrne samo vrednosti polja »email«. Nato smo določili metodo sort(), ki se uporablja za razvrščanje polja »e-pošta«, vrednost »-1« zraven pa označuje, da bodo dobljeni rezultati razvrščanja v padajočem vrstnem redu. Rezultati poizvedbe za razvrščanje po padajočem vrstnem redu se pridobijo po izvedbi v lupini MongoDB.

Primer št. 4: Rezultati poizvedbe za razvrščanje MongoDB za več polj

Več polj v MongoDB lahko razvrstimo z metodo sort(). Polja, ki jih je treba razvrstiti, je treba deklarirati v metodi sort(). Razvrščanje temelji na deklaracijskem vrstnem redu polj, vrstni red razvrščanja pa se pregleda od leve proti desni. Poizvedba za razvrščanje več polj bi morala izgledati takole:

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

Tukaj se posreduje metoda sort() s polji »ime« in »plača«, ki ju je treba razvrstiti. Polje »name« iz zbirke »Employee« je najprej razvrščeno, ker je prvo polje argumenta metode sort(). Nato metoda sort() razvrsti drugo polje argumenta »plača«. Vrstni red obeh polj je »1«, kar pomeni, da bo razvrščanje v naraščajočem vrstnem redu. Izhod za več polj poizvedbe za razvrščanje se ustvari v navedenem vrstnem redu spodaj.

Primer # 5: MongoDB razvrsti rezultate poizvedbe z metodo omejitve

Poleg tega se lahko metoda sort() kombinira tudi z metodo limit(), ki poda omejeno število razvrščenih dokumentov glede na to iskalno poizvedbo. Metoda limit() zahteva celo število kot parameter, ki omejuje število dokumentov, ki naj bodo vključeni v izhodni niz. Spodaj je nastavljena iskalna poizvedba, ki najprej razvrsti dokument in nato zagotovi podane mejne dokumente.

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

Tukaj imamo iskalno poizvedbo, ki začne operacijo razvrščanja za stolpec »oddelek« in nato za stolpec »DOB« v naraščajočem vrstnem redu z uporabo metode sort(). Ko je razvrščanje končano, smo zraven postavili metodo limit() za pridobivanje omejenega dokumenta. Metoda limit() ima številčno vrednost »4«, kar pomeni, da na izhodu prikaže samo štiri razvrščene dokumente, kot je prikazano na naslednjem zaslonu:

Primer št. 6: Rezultati poizvedbe za razvrščanje MongoDB z združevanjem $sort

V vseh zgornjih primerih smo izvedli razvrščanje prek metode sort() MongoDB. Obstaja še en način razvrščanja v MongoDB, ki se doseže z združevanjem $sort. Operator $sort razvrsti vse vhodne dokumente, ki nato vrne razvrščene dokumente v cevovod. Operator $sort je uporabljen za spodnjo zbirko »Zaposleni«.

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

Tukaj smo poklicali agregatno metodo, znotraj katere lahko uporabimo operator »$sort«. Nato imamo izraz operatorja $sort, ki razvrsti stolpec »plača« v naraščajočem vrstnem redu in stolpec »id« v padajočem vrstnem redu. Združevanje $sort, uporabljeno v polju, daje naslednje rezultate:

Primer # 6: MongoDB razvrsti rezultate poizvedbe z metodo preskoka

Metoda sort() je lahko seznanjena tudi z metodo skip(). Nastali nabor podatkov ima lahko določeno število dokumentov, ki bodo prezrti z uporabo metode skip(). Tako kot metoda limit() tudi metoda skip() sprejema številsko vrednost, ki označuje število dokumentov, ki jih je treba preskočiti. V poizvedbi za razvrščanje smo združili metodo sort() z metodo skip().

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

Tukaj smo poleg metode sort() uporabili metodo skip(). Ko metoda sort() razvrsti dokumente, posreduje rezultat razvrščanja metodi sort(). Po tem je metoda skip() odstranila prve štiri razvrščene dokumente iz zbirke.

Zaključek

Članek govori o rezultatih razvrščanja poizvedb v MongoDB. V ta namen smo uporabili metodo sort(), ki organizira zapise v določenem zaporedju. Uporabili smo tudi metodo sort() za večkratno razvrščanje po več poljih. Metoda sort() je nato združena z metodama limit() in skip() za razvrščene dokumente z uporabo teh operacij. Poleg tega smo zagotovili združevanje $sort za rezultate poizvedbe za razvrščanje v MongoDB.