MongoDB rūšiavimo užklausos rezultatai

Mongodb Rusiavimo Uzklausos Rezultatai



Beveik visos duomenų bazių sistemos teikia pirmenybę duomenų rūšiavimui prieš juos nuskaitant, o tai išskiria juos iš kitų duomenų saugojimo būdų. MongoDB taip pat turi įvairių būdų, kaip nustatyti, kaip rūšiuoti duomenis. Dažniausiai mes naudojame sort() metodą, kad nustatytų seką, kurioje dokumentas rodomas. Sekos tvarka perduodama kaip parametras sort() metodui. Po vieno ar kelių laukų, sudarančių sort() metodą, dažnai nurodoma reikšmė „1“ arba „-1“. Sort() metodas daro užklausą lengviau skaitomą, o tai pagerina nurodytos rinkinio supratimą.

Kaip MongoDB rūšiuoja užklausų rezultatus?

Rūšiavimo metodas paima lauką ir su juo susijusią reikšmę kaip vieną parametrą. Rūšiavimo metodas priima JSON formato parametrus, pvz., {Field: Value}. Keli laukai ir reikšmės taip pat gali būti įvesti naudojant sort() metodą, norint gauti surūšiuotus dokumentus iš kolekcijos. Apsvarstykite šį dokumentą, kuriame į duomenų bazę įtraukėme daug kitų dokumentų. Šios MongoDB duomenų bazės pavadinimas pavadintas „Darbuotojai“. Kolekcijoje „Darbuotojai“ yra visa toliau pateikta informacija apie darbuotojus.

db.Employees.insertMany([
{
'vardas': 'Robertas',
'DOB': '1993-05-14',
'Lytis Vyras',
'email': ' [apsaugotas el. paštas] ',
'department': 'Securtiy',
'atlyginimas': 5000
},
{
'vardas': 'kylė',
'DOB': '1999-05-31',
'Lytis Moteris',
'email': ' [apsaugotas el. paštas] ',
'department': 'IT',
'atlyginimas': 6200
},
{
'vardas': 'Matas',
'DOB': '1993-04-26',
'Lytis Vyras',
'email': ' [apsaugotas el. paštas] ',
'department': 'Sąskaitos',
'atlyginimas': 3500
},
{
'vardas': 'Kevinas',
'DOB': '1991-07-14',
'Lytis Vyras',
'email': ' [apsaugotas el. paštas] ',
'department': 'Sauga',
'atlyginimas': 4500
},

{
'vardas': 'Julija',
'DOB': '09-12-2000',
'Lytis Moteris',
'email': ' [apsaugotas el. paštas] ',
'department': 'IT',
'atlyginimas': 2500
}
])

Rinkinys „Darbuotojas“ įterpiamas su pateiktais dokumentais, kurių patvirtinimas pateikiamas toliau pateiktame išėjime. Šį rinkimo dokumentą naudosime norėdami parodyti rūšiavimo užklausos rezultatų funkcionalumą.









1 pavyzdys: MongoDB nesurūšiuota kolekcija

Kai paieškos užklausa vykdoma naudojant find() metodą, ji visada pateikia nerūšiuotą dokumentų rinkinį. Tai gali būti aiškiau naudojant toliau pateiktus užklausos rezultatus.



>db.Darbuotojai.rasti({},{_id:0})

Čia mes turime „Darbuotojo“ kolekcijos užklausą su metodu find(). Find() metodas paima tuščią parametrą kartu su „_id:0“. Kad rezultatas būtų paprastesnis, dokumento ID pašalinamas naudojant operatorių „_id:0“. Pagal numatytuosius nustatymus mes gauname nerūšiuotas kolekcijas, kai užklausa ieškoma naudojant find() metodą. Toliau gauta išvestis yra visi nesurūšiuoti dokumentai tokiu būdu, kokį turime įterpimo metu.





2 pavyzdys: MongoDB rūšiuokite užklausos rezultatus didėjančia tvarka

Surūšiuota kolekcija MongoDB gaunama naudojant rūšiavimo () metodą, kuris turėtų būti dedamas po metodo find (). Sort() metodas MongoDB paima parametrą, kuris yra įtrauktas į lauko pavadinimą ir dokumento rūšiavimo tvarką. Turime įvesti „1“ kaip parametrą į lauką, nes šiame konkrečiame pavyzdyje dokumentus gausime didėjančia tvarka. Toliau pateikiami rūšiavimo užklausos rezultatai didėjančia tvarka.



>db.Darbuotojai.rasti().rūšiuoti({vardas:1})

Čia mes panaudojome sort() metodą po paieškos užklausos. Rūšiavimo () metodas naudojamas rūšiuoti lauką „pavadinimas“ didėjančia tvarka, nes šalia nurodyto lauko yra reikšmė „1“. Atminkite, kad jei metodas sort() nenurodytas jokia parametrine verte, rinkinys nebus rūšiuojamas. Sort() metodo išvestis bus gauta numatytaja tvarka. Sort() metodo pagal pavadinimą lauko rezultatai didėjančia tvarka rodomi šiame MongoDB apvalkale.

3 pavyzdys: MongoDB rūšiuokite užklausos rezultatus mažėjančia tvarka

Dabar rodome MongoDB rūšiavimo užklausos rezultatus mažėjančia tvarka. Šio tipo užklausa yra tokia pati kaip aukščiau pateiktas pavyzdys, tačiau turi vieną skirtumą. Mažėjančia tvarka rūšiavimo () metodas paima reikšmę „-1“ prieš stulpelio pavadinimą. Žemiau pateikiami rūšiavimo užklausos rezultatai mažėjančia tvarka.

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

Čia paieškos užklausa prasideda find() metodu, kuris suranda lauką „email“ ir pateikia tik lauko „email“ reikšmes. Toliau nurodėme metodą sort(), kuris naudojamas rūšiuoti lauką „el. paštas“, o šalia jo esanti reikšmė „-1“ rodo, kad gauti rūšiavimo rezultatai bus mažėjančia tvarka. Mažėjančios tvarkos rūšiavimo užklausos rezultatai gaunami jį įvykdžius MongoDB apvalkale.

4 pavyzdys: MongoDB rūšiuokite kelių laukų užklausos rezultatus

Mes galime rūšiuoti kelis MongoDB laukus naudodami rūšiavimo () metodą. Rūšiuotini laukai turi būti deklaruoti sort() metodu. Rūšiavimas pagrįstas laukų deklaravimo tvarka, o rūšiavimo tvarka nagrinėjama iš kairės į dešinę. Kelių laukų rūšiavimo užklausa turėtų atrodyti taip:

>db.Darbuotojai.find({},{_id:0}).sort({'vardas':1,'alga':1})

Čia rūšiavimo () metodas perduodamas su „vardo“ ir „atlyginimo“ laukais, kuriuos reikia rūšiuoti. Laukas „vardas“ iš rinkinio „Darbuotojas“ rūšiuojamas pirmiausia, nes tai yra pirmasis sort() metodo argumentų laukas. Tada metodas sort() surūšiuoja antrą argumento lauką „alga“. Abiejų laukų tvarka yra „1“, o tai reiškia, kad rūšiavimas bus vykdomas didėjančia tvarka. Kelių rūšiavimo užklausos laukų išvestis generuojama toliau nurodyta rūšiavimo tvarka.

5 pavyzdys: „MongoDB“ rūšiuokite užklausos rezultatus naudodami ribinį metodą

Be to, metodas sort() taip pat gali būti derinamas su limit() metodu, kuris suteikia ribotą surūšiuotų dokumentų skaičių pagal tą paieškos užklausą. Limit() metodas reikalauja sveikojo skaičiaus kaip parametro, kuris riboja dokumentų, kurie turi būti įtraukti į išvesties rinkinį, skaičių. Žemiau nustatoma paieškos užklausa, kuri pirmiausia surūšiuoja dokumentą, o tada pateikia nurodytus limitinius dokumentus.

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

Čia turime paieškos užklausą, kuri pradeda rūšiuoti stulpelį „departamentas“, o tada – stulpelį „DOB“ didėjančia tvarka, naudojant rūšiavimo () metodą. Kai rūšiavimas bus baigtas, šalia jo patalpinome limit() metodą, skirtą ribotam dokumentui gauti. Limit() metodui suteikiama skaitinė reikšmė „4“, o tai reiškia, kad jis išvestyje rodo tik keturis surūšiuotus dokumentus, kaip parodyta šiame ekrane:

6 pavyzdys: MongoDB rūšiavimo užklausos rezultatai naudojant $sort agregaciją

Visuose aukščiau pateiktuose pavyzdžiuose atlikome rūšiavimą naudodami MongoDB metodą sort (). Yra ir kitas „MongoDB“ rūšiavimo būdas, kuris pasiekiamas naudojant $sort agregaciją. Operatorius $sort surūšiuoja visus įvesties dokumentus ir grąžina surūšiuotus dokumentus į konvejerį. Operatorius $sort taikomas toliau pateiktam rinkiniui „Darbuotojai“.

db.Employees.aggregate([ { $rūšiuoti : { atlyginimas : 1, _id: -1 } } ])

Čia mes iškvietėme agregavimo metodą, kuriame galime naudoti operatorių „$rūšiuoti“. Tada turime operatoriaus $rūšiavimo išraišką, kuri surūšiuoja stulpelį „atlyginimas“ didėjančia tvarka ir „id“ stulpelį mažėjančia tvarka. Lauke pritaikytas $sort agregavimas pateikia šiuos rezultatus:

6 pavyzdys: MongoDB rūšiuokite užklausos rezultatus naudodami praleidimo metodą

Rūšiuoti() metodas taip pat gali būti susietas su skip() metodu. Gautame duomenų rinkinyje gali būti tam tikras skaičius dokumentų, kurie bus ignoruojami naudojant skip() metodą. Kaip ir limit() metodas, skip() metodas taip pat priima skaitinę reikšmę, kuri nurodo praleistinų dokumentų skaičių. Rūšiavimo užklausoje sujungėme metodą sort() su skip() metodu.

>db.Darbuotojai.rasti({},{_id:0}).sort({'alga':1}).praleisti(4).gražu()

Čia mes panaudojome skip() metodą šalia rūšiavimo() metodo. Kai metodas sort() rūšiuoja dokumentus, rūšiavimo išvestį jis perduoda rūšiavimo() metodui. Po to skip() metodas pašalino pirmuosius keturis surūšiuotus dokumentus iš kolekcijos.

Išvada

Straipsnis yra apie rūšiavimo užklausos rezultatus MongoDB. Šiam tikslui naudojome metodą sort(), kuris sutvarko įrašus nurodyta seka. Taip pat naudojome rūšiavimo () metodą keliems laukams rūšiuoti. Tada metodas sort() suporuojamas su limit() ir skip() metodais surūšiuotiems dokumentams naudojant šias operacijas Be to, mes pateikėme $sort agregaciją rūšiavimo užklausos rezultatams MongoDB.