MongoDB Lajittele kyselyn tulokset

Mongodb Lajittele Kyselyn Tulokset



Melkein kaikki tietokantajärjestelmät priorisoivat tietojen lajittelun ennen sen hakemista, mikä erottaa ne muista tiedontallennusmenetelmistä. MongoDB:llä on myös useita tapoja määrittää, kuinka tiedot lajitellaan. Useimmiten käytämme sort()-menetelmää määrittääksemme järjestyksen, jossa asiakirja näkyy. Jakson järjestys välitetään parametrina sort()-metodille. Yhtä tai useampaa sort()-menetelmän muodostavaa kenttää seuraa usein joko arvo '1' tai '-1'. Sort()-menetelmä tekee kyselystä luettavamman, mikä parantaa määritetyn kokoelman ymmärtämistä.

Kuinka MongoDB lajittelee kyselyn tulokset?

Lajittelumenetelmä ottaa kentän ja siihen liittyvän arvon yhtenä parametrina. Lajittelumenetelmä hyväksyy JSON-muodossa olevat parametrit, kuten {Field: Value}. Useita kenttiä ja arvoja voidaan syöttää myös sort()-menetelmään lajiteltujen asiakirjojen saamiseksi kokoelmasta. Harkitse seuraavaa asiakirjaa, jossa olemme lisänneet monia muita asiakirjoja tietokantaamme. Tämän MongoDB-tietokannan nimi on 'Työntekijät'. 'Työntekijät' -kokoelmassa on kaikki alla näkyvät tiedot työntekijöistä.

db.Employees.insertMany([
{
'nimi': 'Robert',
'DOB': '14-05-1993',
'Sukupuoli Mies',
'sähköposti': ' [sähköposti suojattu] ',
'osasto': 'Turvallisuus',
'palkka': 5000
},
{
'nimi': 'kyle',
'DOB': '31-05-1999',
'Sukupuoli Nainen',
'sähköposti': ' [sähköposti suojattu] ',
'osasto': 'IT',
'palkka': 6200
},
{
'nimi': 'Matteus',
'DOB': '26-04-1993',
'Sukupuoli Mies',
'sähköposti': ' [sähköposti suojattu] ',
'osasto': 'Tilit',
'palkka': 3500
},
{
'nimi': 'Kevin',
'DOB': '14-07-1991',
'Sukupuoli Mies',
'sähköposti': ' [sähköposti suojattu] ',
'osasto': 'Turvallisuus',
'palkka': 4500
},

{
'nimi': 'Julia',
'DOB': '09-12-2000',
'Sukupuoli Nainen',
'sähköposti': ' [sähköposti suojattu] ',
'osasto': 'IT',
'palkka': 2500
}
])

Kokoelma 'Työntekijä' lisätään toimitettujen asiakirjojen kanssa, joiden vahvistus näkyy seuraavassa tulosteessa. Aiomme käyttää tätä kokoelmaasiakirjaa lajittelukyselyn tulosten toimivuuden näyttämiseen.









Esimerkki 1: MongoDB lajittelematon kokoelma

Kun hakukysely suoritetaan find()-menetelmällä, se antaa aina lajittelemattoman kokoelman asiakirjoja. Tämä voi olla selkeämpi alla olevien kyselytulosten avulla.



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

Tässä meillä on kysely 'Työntekijä' -kokoelmasta find()-menetelmällä. Find()-menetelmä ottaa tyhjän parametrin yhdessä '_id:0' kanssa. Yksinkertaisempaa tulosta varten asiakirjan tunnus poistetaan käyttämällä operaattoria '_id:0'. Oletuksena saamme lajittelemattomia kokoelmia, kun kyselyä etsitään find()-menetelmällä. Alla haettu tulos on kaikki lajittelemattomat asiakirjat tavalla, joka meillä on lisäyshetkellä.





Esimerkki # 2: MongoDB Lajittele kyselyn tulokset nousevassa järjestyksessä

Lajiteltu kokoelma MongoDB:ssä saadaan käyttämällä sort()-menetelmää, joka tulee sijoittaa find()-menetelmän jälkeen. MongoDB:n sort()-menetelmä ottaa parametrin, joka sisältyy kentän nimeen ja asiakirjan lajittelujärjestykseen. Meidän on syötettävä '1' parametriksi kenttään, koska haemme asiakirjat nousevassa järjestyksessä tässä esimerkissä. Seuraava lajittelukyselyn tulos on nousevassa järjestyksessä.



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

Tässä olemme käyttäneet sort()-menetelmää Find-hakukyselyn jälkeen. Sort()-menetelmää käytetään lajittelemaan kenttä 'nimi' nousevaan järjestykseen, koska arvo '1' sijoitetaan määritetyn kentän viereen. Huomaa, että jos sort()-menetelmälle ei ole määritetty mitään parametriarvoa, kokoelmaa ei lajiteta. Sort()-menetelmän tulos saadaan oletusjärjestyksessä. Sort()-menetelmän tulokset nimikentän mukaan nousevassa järjestyksessä näkyvät seuraavassa MongoDB-kuoressa.

Esimerkki 3: MongoDB Lajittele kyselyn tulokset laskevassa järjestyksessä

Nyt näytämme MongoDB:n lajittelukyselyn tulokset laskevassa järjestyksessä. Tämäntyyppinen kysely on sama kuin yllä oleva esimerkki, mutta yhdellä erolla. Laskevassa järjestyksessä sort()-menetelmä ottaa arvon '-1' sarakkeen nimeä vastaan. Lajittelukyselyn tulokset laskevassa järjestyksessä on esitetty alla.

>db.Employees.find({},{'email':1,_id:0}).sort({'sähköposti':-1})

Tässä hakukysely alkaa find()-menetelmällä, joka löytää kentän 'email' ja palauttaa vain kentän 'email' arvot. Seuraavaksi olemme määrittäneet sort()-menetelmän, jota käytetään 'sähköposti'-kentän lajitteluun, ja sen vieressä oleva arvo '-1' osoittaa, että saadut lajittelutulokset ovat laskevassa järjestyksessä. Laskevan järjestyksen lajittelukyselyn tulokset haetaan sen jälkeen, kun se on suoritettu MongoDB-kuoressa.

Esimerkki # 4: MongoDB Lajittele kyselytulokset useille kentille

Voimme lajitella MongoDB:n useat kentät sort()-menetelmällä. Lajiteltavat kentät tulee ilmoittaa sort()-metodissa. Lajittelu perustuu kenttien ilmoitusjärjestykseen ja lajittelujärjestystä tarkastellaan vasemmalta oikealle. Useiden kenttien lajittelukyselyn pitäisi näyttää tältä:

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

Tässä välitetään sort()-menetelmä, jossa on lajiteltavat kentät 'nimi' ja 'palkka'. Kenttä 'nimi' 'Työntekijä' -kokoelmasta lajitellaan ensin, koska se on sort()-menetelmän ensimmäinen argumenttikenttä. Sitten sort()-menetelmä lajittelee toisen argumenttikentän 'palkka'. Molempien kenttien järjestys on '1', mikä tarkoittaa, että lajittelu tapahtuu nousevassa järjestyksessä. Lajittelukyselyn useiden kenttien tulos luodaan alla määritetyssä lajittelujärjestyksessä.

Esimerkki # 5: MongoDB Lajittele kyselyn tulokset rajoitusmenetelmällä

Lisäksi sort()-menetelmä voidaan yhdistää limit()-menetelmään, joka antaa rajoitetun määrän lajiteltuja asiakirjoja kyseisen hakukyselyn mukaan. Limit()-menetelmä vaatii parametrina kokonaisluvun, joka rajoittaa tulosjoukkoon sisällytettävien asiakirjojen määrää. Hakukysely asetetaan alle, joka ensin lajittelee asiakirjan ja tarjoaa sitten määritetyt rajatositeasiakirjat.

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

Täällä meillä on hakukysely, joka aloittaa lajittelutoiminnon sarakkeelle 'osasto' ja sitten 'DOB' sarakkeelle nousevassa järjestyksessä käyttämällä sort()-menetelmää. Kun lajittelu on suoritettu, olemme sijoittaneet limit()-menetelmän sen viereen rajoitetun asiakirjan hakemiseksi. Limit()-menetelmälle on annettu numeerinen arvo '4', mikä tarkoittaa, että se näyttää tulostukseen vain neljä lajiteltua asiakirjaa seuraavan näytön mukaisesti:

Esimerkki # 6: MongoDB-lajittelukyselyn tulokset $sort-koosteella

Kaikissa yllä olevissa esimerkeissä olemme suorittaneet lajittelun MongoDB:n sort()-menetelmällä. MongoDB:ssä on toinenkin lajittelutapa, joka saadaan aikaan $sort-aggregaation avulla. $sort-operaattori lajittelee kaikki syöttöasiakirjat ja palauttaa sitten lajitellut asiakirjat liukuhihnaan. $sort-operaattoria käytetään alla olevaan Työntekijät-kokoelmaan.

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

Tässä olemme kutsuneet esiin koontimenetelmän, jonka sisällä voimme käyttää '$sort'-operaattoria. Sitten meillä on $sort-operaattorilauseke, joka lajittelee 'palkka'-sarakkeen nousevaan järjestykseen ja 'id'-sarakkeen laskevaan järjestykseen. Kenttään käytetty $sort aggregaatio tuottaa seuraavat tulokset:

Esimerkki # 6: MongoDB Lajittele kyselyn tulokset ohitusmenetelmällä

Sort()-menetelmä voidaan myös yhdistää skip()-metodin kanssa. Tuloksena oleva tietojoukko voi sisältää tietyn määrän asiakirjoja, jotka ohitetaan skip()-menetelmällä. Kuten limit()-menetelmä, myös skip()-menetelmä hyväksyy numeerisen arvon, joka ilmaisee ohitettavien asiakirjojen määrän. Olemme yhdistäneet sort()-menetelmän skip()-menetelmään lajittelukyselyssä.

>db.Työntekijät.find({},{_id:0}).sort({'palkka':1}).skip(4).pretty()

Tässä olemme käyttäneet skip()-menetelmää sort()-menetelmän vieressä. Kun sort()-menetelmä lajittelee asiakirjat, se välittää lajittelutuloksen sort()-menetelmälle. Sen jälkeen skip()-menetelmä poisti kokoelmasta neljä ensimmäistä lajiteltua dokumenttia.

Johtopäätös

Artikkeli käsittelee lajittelukyselyn tuloksia MongoDB:ssä. Olemme käyttäneet tähän tarkoitukseen sort()-menetelmää, joka järjestää tietueet määrättyyn järjestykseen. Olemme myös käyttäneet sort()-menetelmää useiden kenttien lajitteluun. Sort()-menetelmä yhdistetään sitten limit()- ja skip()-menetelmien kanssa lajiteltuihin asiakirjoihin näiden toimintojen avulla. Lisäksi olemme toimittaneet $sort-koosteen lajittelukyselyn tuloksiin MongoDB:ssä.