MongoDB sortimispäringu tulemused

Mongodb Sortimisparingu Tulemused



Peaaegu kõik andmebaasisüsteemid eelistavad andmete sorteerimist enne nende hankimist, mis eristab neid muudest andmesalvestusmeetoditest. MongoDB-l on ka erinevaid viise andmete sortimise määramiseks. Enamasti kasutame sort() meetodit, et määrata, millises järjestuses dokument kuvatakse. Jada järjekord edastatakse parameetrina sort() meetodile. Ühele või mitmele väljale, mis moodustavad sort() meetodi, järgneb sageli kas väärtus '1' või '-1'. Meetod sort() muudab päringu loetavamaks, mis parandab konkreetse kogumi mõistmist.

Kuidas MongoDB päringutulemusi sorteerib?

Sorteerimismeetod võtab välja ja sellega seotud väärtuse ühe parameetrina. Sorteerimismeetod aktsepteerib JSON-vormingus parameetreid, näiteks {Field: Value}. Sorteeritud dokumentide kogust hankimiseks saab mitut välja ja väärtust sisestada ka sort() meetodil. Mõelge järgmisele dokumendile, milles oleme oma andmebaasi lisanud palju muid dokumente. Selle MongoDB andmebaasi nimi on pealkirjaga 'Töötajad'. Kogus 'Töötajad' on kogu allpool näidatud töötajate teave.

db.Employees.insertMany([
{
'nimi': 'Robert',
'DOB': '14-05-1993',
'Sugu Mees',
'e-post': ' [meil kaitstud] ',
'osakond': 'Turvalisus',
'palk': 5000
},
{
'nimi': 'kyle',
'DOB': '31-05-1999',
'Sugu naine',
'e-post': ' [meil kaitstud] ',
'osakond': 'IT',
'palk': 6200
},
{
'nimi': 'Matteus',
'DOB': '26-04-1993',
'Sugu Mees',
'e-post': ' [meil kaitstud] ',
'osakond': 'kontod',
'palk': 3500
},
{
'nimi': 'Kevin',
'DOB': '14-07-1991',
'Sugu Mees',
'e-post': ' [meil kaitstud] ',
'osakond': 'Turvalisus',
'palk': 4500
},

{
'nimi': 'Julia',
'DOB': '09-12-2000',
'Sugu naine',
'e-post': ' [meil kaitstud] ',
'osakond': 'IT',
'palk': 2500
}
])

Kogumik “Töötaja” lisatakse koos esitatud dokumentidega, mille kinnitus on näidatud järgmises väljundis. Kasutame seda kogumisdokumenti sortimispäringu tulemuste funktsionaalsuse näitamiseks.









Näide # 1: MongoDB sortimata kogu

Kui otsingupäring täidetakse meetodiga find(), annab see alati sortimata dokumentide kogumi. See võib olla selgem allpool esitatud päringutulemustega.



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

Siin on meil päring kogu 'Töötaja' kohta Find() meetodiga. Find() meetod võtab tühja parameetri koos _id:0-ga. Lihtsama tulemuse saavutamiseks eemaldatakse dokumendi ID operaatori '_id:0' abil. Vaikimisi saame sortimata kogud, kui päringut otsitakse meetodiga find(). Allpool otsitud väljund on kõik sortimata dokumendid viisil, mis meil on sisestamise ajal.





Näide # 2: MongoDB päringu tulemuste sortimine kasvavas järjekorras

Sorteeritud kogu MongoDB-s saadakse sort() meetodi abil, mis tuleks paigutada meetodi find() järele. MongoDB meetod sort() võtab parameetri, mis sisaldub välja nimes ja dokumendi sortimise järjekorras. Peame väljale sisestama parameetri '1', kuna selles konkreetses näites hangime dokumendid kasvavas järjekorras. Järgmine sortimispäring annab tulemuseks kasvavas järjekorras.



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

Siin oleme pärast otsingupäringut kasutanud sort() meetodit. Meetodit sort() kasutatakse välja 'nimi' sortimiseks kasvavas järjekorras, kuna väärtus '1' asetatakse määratud välja kõrvale. Pange tähele, et kui meetodile sort() pole määratud ühtegi parameetrilist väärtust, siis kollektsiooni ei sorteerita. Meetodi sort() väljund saadakse vaikejärjekorras. Meetodi sort() tulemused nimevälja järgi kasvavas järjekorras kuvatakse järgmises MongoDB kestas.

Näide # 3: MongoDB sortige päringutulemused kahanevas järjekorras

Nüüd näitame MongoDB sortimispäringu tulemusi kahanevas järjekorras. Seda tüüpi päring on sama, mis ülaltoodud näites, kuid sellel on üks erinevus. Kahanevas järjestuses võtab sort() meetod veeru nime asemel väärtuse '-1'. Allpool on toodud sortimispäringu tulemused kahanevas järjekorras.

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

Siin algab otsingupäring meetodiga find(), mis leiab välja 'email' ja tagastab ainult välja 'email' väärtused. Järgmiseks oleme määranud sort() meetodi, mida kasutatakse välja 'e-post' sortimiseks ja selle kõrval olev väärtus '-1' näitab, et saadud sortimistulemused on kahanevas järjekorras. Kahanevas järjestuses sortimise päringu tulemused tuuakse pärast selle käivitamist MongoDB kestas.

Näide # 4: MongoDB mitme välja päringu tulemuste sortimine

Saame sortida mitut MongoDB välja sorti () meetodiga. Sorteeritavad väljad tuleks deklareerida sort() meetodil. Sorteerimine toimub väljade deklareerimise järjekorra alusel ja sortimise järjekorda uuritakse vasakult paremale. Mitme välja sortimise päring peaks välja nägema järgmine:

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

Siin edastatakse sort() meetod sortitavate väljadega “nimi” ja “palk”. Väli 'nimi' kogust 'Töötaja' sorteeritakse esimesena, kuna see on sort() meetodi esimene argumendiväli. Seejärel sortib meetod sort() teise argumendivälja 'palk'. Mõlema välja järjestus on '1', mis näitab, et sortimine toimub kasvavas järjekorras. Mitme sortimispäringu välja väljund genereeritakse allpool määratletud sortimisjärjestuses.

Näide # 5: MongoDB päringu tulemuste sortimine piirangumeetodiga

Lisaks saab sort()-meetodit kombineerida meetodiga limit(), mis annab selle otsingupäringu järgi sorteeritud dokumentide piiratud arvu. Limit() meetod nõuab parameetrina täisarvu, mis piirab dokumentide arvu, mis tuleks väljundkomplekti kaasata. Allpool määratakse otsingupäring, mis kõigepealt sorteerib dokumendi ja seejärel esitab määratud limiitdokumendid.

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

Siin on meil otsingupäring, mis alustab sortimistoimingut veeru „osakond” ja seejärel veeru „DOB” jaoks kasvavas järjekorras, kasutades sort() meetodit. Kui sorteerimine on lõpule viidud, oleme selle kõrvale asetanud limit() meetodi piiratud dokumendi toomiseks. Limit() meetodile antakse arvväärtus '4', mis tähendab, et see kuvab väljundisse ainult neli sorteeritud dokumenti, nagu on näidatud järgmisel ekraanil:

Näide # 6: MongoDB sortimispäringu tulemused $sort agregatsiooniga

Kõigis ülaltoodud näidetes oleme sortinud MongoDB meetodi sort() abil. MongoDB-s on sortimiseks veel üks viis, mis saavutatakse $sort agregatsiooni kaudu. Operaator $sort sorteerib kõik sisenddokumendid, mis seejärel tagastab sorteeritud dokumendid konveierisse. Operaatorit $sort rakendatakse allolevale kogule „Töötajad”.

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

Siin oleme välja kutsunud koondmeetodi, mille sees saame kasutada operaatorit „$sort”. Seejärel on meil operaatori avaldis $sort, mis sorteerib veeru 'palk' kasvavas järjekorras ja veeru 'id' kahanevas järjekorras. Väljale rakendatud $sort agregatsioon annab järgmised tulemused:

Näide # 6: MongoDB sortige päringutulemusi vahelejätmise meetodiga

Meetodi sort() saab siduda ka skip()-meetodiga. Saadud andmekogumil võib olla teatud arv dokumente, mida meetodi skip() abil ignoreeritakse. Sarnaselt meetodile limit() aktsepteerib ka skip() meetod numbrilist väärtust, mis näitab vahele jäetavate dokumentide arvu. Oleme sortimispäringus kombineerinud sort() meetodi skip() meetodiga.

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

Siin oleme kasutanud skip() meetodit sort() meetodi kõrval. Kui meetod sort() sorteerib dokumendid, edastab see sortimisväljundi sorti() meetodile. Pärast seda eemaldas meetod skip() kogust neli esimest sorteeritud dokumenti.

Järeldus

Artikkel käsitleb päringu tulemuste sortimist MongoDB-s. Oleme selleks kasutanud sort() meetodit, mis korraldab kirjed määratud järjestuses. Oleme kasutanud ka sort() meetodit mitme välja sortimiseks. Seejärel seotakse sort() meetod sorteeritud dokumentidele meetodite limit() ja skip() abil, kasutades neid toiminguid. Lisaks oleme MongoDB-s pakkunud sortimispäringu tulemuste jaoks $sort agregatsiooni.