MongoDB Sorter søkeresultater

Mongodb Sorter Sokeresultater



Nesten alle databasesystemer prioriterer å sortere data før de hentes, noe som skiller dem fra andre datalagringsmetoder. MongoDB har også forskjellige måter å bestemme hvordan dataene skal sorteres. For det meste bruker vi sort()-metoden for å bestemme rekkefølgen dokumentet vises i. Rekkefølgen til sekvensen sendes som en parameter til sort()-metoden. Ett eller flere felt som utgjør sort()-metoden blir ofte fulgt av enten en verdi '1' eller en '-1'. Sort()-metoden gjør en spørring mer lesbar, noe som forbedrer forståelsen av en spesifisert samling.

Hvordan sorterer MongoDB søkeresultater?

Sorteringsmetoden tar feltet og dets tilhørende verdi som en enkelt parameter. Sorteringsmetoden godtar parametere i JSON-formatet som {Field: Value}. De flere feltene og verdiene kan også legges inn i sort()-metoden for å hente de sorterte dokumentene fra samlingen. Tenk på følgende dokument der vi har satt inn mange andre dokumenter i databasen vår. Navnet på denne MongoDB-databasen har tittelen 'Ansatte'. 'Ansatte'-samlingen har all informasjon om de ansatte vist nedenfor.

db.Employees.insertMany([
{
'name': 'Robert',
'DOB': '14-05-1993',
'Kjønn Mann',
'e-post': ' [e-postbeskyttet] ',
'avdeling': 'Sikkerhet',
'lønn' : 5000
},
{
'name': 'kyle',
'DOB': '31-05-1999',
'kjønn kvinnelig',
'e-post': ' [e-postbeskyttet] ',
'avdeling': 'IT',
'lønn' : 6200
},
{
'name': 'Matthew',
'DOB': '26-04-1993',
'Kjønn Mann',
'e-post': ' [e-postbeskyttet] ',
'avdeling': 'Kontoer',
'lønn' : 3500
},
{
'name': 'Kevin',
'DOB': '14-07-1991',
'Kjønn Mann',
'e-post': ' [e-postbeskyttet] ',
'department': 'Sikkerhet',
'lønn' : 4500
},

{
'name': 'Julia',
'DOB': '09-12-2000',
'kjønn kvinnelig',
'e-post': ' [e-postbeskyttet] ',
'avdeling': 'IT',
'lønn' : 2500
}
])

Samlingen 'Ansatt' settes inn med de leverte dokumentene hvis bekreftelse vises i følgende utgang. Vi skal bruke dette samlingsdokumentet for å vise funksjonaliteten til resultatene for sorteringsspørringen.









Eksempel # 1: MongoDB Usortert samling

Når søket utføres med find()-metoden, gir det alltid en usortert samling av dokumenter. Dette kan være klarere med søkeresultatene nedenfor.



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

Her har vi en spørring av 'Employee'-samlingen med find()-metoden. Find()-metoden tar den tomme parameteren sammen med '_id:0'. For et enklere resultat fjernes dokument-ID-en ved å bruke '_id:0'-operatoren. Som standard får vi usorterte samlinger når søket søkes med metoden find(). Utdataene som hentes nedenfor er alle usorterte dokumenter på en måte som vi har ved innsettingstidspunktet.





Eksempel # 2: MongoDB Sorter søkeresultater i stigende rekkefølge

Den sorterte samlingen i MongoDB oppnås ved å bruke sort()-metoden som skal plasseres etter find()-metoden. Sort()-metoden i MongoDB tar parameteren som er inkludert i feltnavnet og sorteringsrekkefølgen på dokumentet. Vi må angi '1' som en parameter i feltet siden vi skal hente dokumentene i stigende rekkefølge i dette spesielle eksemplet. Følgende i sorteringsspørringen resulterer i stigende rekkefølge.



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

Her har vi brukt sort()-metoden etter søk-søket. Sort()-metoden brukes til å sortere feltet 'navn' i stigende rekkefølge ettersom verdien '1' plasseres ved siden av det angitte feltet. Merk at hvis sort()-metoden ikke er spesifisert med noen parametrisk verdi, vil ikke samlingen bli sortert. Utdataene fra sort()-metoden vil bli hentet i standardrekkefølgen. Resultatene av sort()-metoden etter navn-feltet i stigende rekkefølge vises i følgende MongoDB-skall.

Eksempel # 3: MongoDB Sorter søkeresultater i synkende rekkefølge

Nå viser vi sorteringsspørringsresultatene til MongoDB i synkende rekkefølge. Denne typen søk er den samme som eksemplet ovenfor, men med én forskjell. For synkende rekkefølge tar sort()-metoden verdien '-1' mot kolonnenavnet. Sorteringsspørringens resultater i synkende rekkefølge er gitt nedenfor.

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

Her begynner søket med find()-metoden som finner feltet 'e-post' og returnerer bare feltet 'e-post'-verdier. Deretter har vi spesifisert sort()-metoden som brukes til å sortere 'e-post'-feltet, og verdien '-1' ved siden av det indikerer at sorteringsresultatene som oppnås vil være i synkende rekkefølge. Sorteringsresultatene i synkende rekkefølge hentes etter at de er utført i MongoDB-skallet.

Eksempel # 4: MongoDB Sorter spørringsresultater for flere felt

Vi kan sortere de flere feltene i MongoDB med sort()-metoden. Feltene som skal sorteres skal deklareres i sort()-metoden. Sorteringen er basert på deklarasjonsrekkefølgen til feltene og sorteringsrekkefølgen undersøkes fra venstre mot høyre. Spørsmålet for å sortere de flere feltene skal se slik ut:

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

Her sendes sort()-metoden med 'navn' og 'lønn'-feltene som skal sorteres. Feltet 'navn' fra samlingen 'Ansatt' sorteres først fordi det er det første argumentfeltet i sort()-metoden. Deretter sorterer sort()-metoden det andre argumentfeltet 'lønn'. Rekkefølgen på begge feltene er '1' som indikerer at sorteringen vil være i stigende rekkefølge. Utdata for flere felt med sorteringsspørring genereres i den angitte sorteringsrekkefølgen nedenfor.

Eksempel # 5: MongoDB Sorter søkeresultater med Limit Method

Videre kan sort()-metoden også kombineres med limit()-metoden som gir det begrensede antallet av de sorterte dokumentene etter det søket. Limit()-metoden krever et heltall som parameter, som begrenser antall dokumenter som skal inkluderes i utdatasettet. Søket stilles inn under som først sorterer dokumentet og deretter gir de angitte grensedokumentene.

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

Her har vi søket som starter sorteringsoperasjonen for «avdeling»-kolonnen og deretter for «DOB»-kolonnen i stigende rekkefølge ved å bruke sort()-metoden. Når sorteringen er fullført, har vi plassert limit()-metoden ved siden av den for å hente det begrensede dokumentet. Limit()-metoden er gitt en numerisk verdi '4', som betyr at den bare viser fire sorterte dokumenter til utdataene som vist i følgende skjermbilde:

Eksempel # 6: MongoDB Sorter spørringsresultater med $sort-aggregering

I alle eksemplene ovenfor har vi utført sorteringen via sort()-metoden til MongoDB. Det er en annen måte å sortere på i MongoDB som oppnås gjennom $sort-aggregeringen. $sort-operatøren sorterer alle inndatadokumenter som deretter returnerer de sorterte dokumentene til rørledningen. $sort-operatøren brukes på 'Ansatte'-samlingen nedenfor.

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

Her har vi kalt ut aggregeringsmetoden der vi kan bruke '$sort'-operatoren. Deretter har vi $sort-operatoruttrykket som sorterer kolonnen 'lønn' i stigende rekkefølge og 'id'-kolonnen i synkende rekkefølge. $sort-aggregeringen brukt på feltet gir følgende resultater:

Eksempel # 6: MongoDB Sorter søkeresultater med Skip-metoden

Sort()-metoden kan også sammenkobles med skip()-metoden. Det resulterende datasettet kan ha et visst antall dokumenter som vil bli ignorert ved å bruke skip()-metoden. I likhet med limit()-metoden, aksepterer skip()-metoden også den numeriske verdien som indikerer antall dokumenter som skal hoppes over. Vi har kombinert sort()-metoden med skip()-metoden i sorteringsspørringen.

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

Her har vi brukt skip()-metoden ved siden av sort()-metoden. Når sort()-metoden sorterer dokumentene, sender den sorteringsutdataene til sort()-metoden. Etter det fjernet skip()-metoden de fire første sorterte dokumentene fra samlingen.

Konklusjon

Artikkelen handler om sorteringssøkresultatene i MongoDB. Vi har brukt sort()-metoden for dette formålet som organiserer postene i en spesifisert sekvens. Vi har også brukt sort()-metoden for multippel sortering på tvers av flere felt. Sort()-metoden blir deretter paret med metodene limit() og skip() til de sorterte dokumentene ved å bruke disse operasjonene. I tillegg har vi gitt $sort-aggregeringen for sorteringsspørringsresultater i MongoDB.