MongoDB Sorter forespørgselsresultater

Mongodb Sorter Foresporgselsresultater



Næsten alle databasesystemer prioriterer at sortere data, før de hentes, hvilket adskiller dem fra andre datalagringsmetoder. MongoDB har også forskellige måder at bestemme, hvordan dataene skal sorteres på. For det meste bruger vi metoden sort() til at bestemme rækkefølgen, hvori dokumentet vises. Rækkefølgen af ​​sekvensen overføres som en parameter til sort()-metoden. Det et eller flere felter, der udgør sort()-metoden, efterfølges ofte af enten en værdi '1' eller en '-1'. Sort()-metoden gør en forespørgsel mere læsbar, hvilket forbedrer forståelsen af ​​en specificeret samling.

Hvordan sorterer MongoDB forespørgselsresultater?

Sorteringsmetoden tager feltet og dets tilhørende værdi som en enkelt parameter. Sorteringsmetoden accepterer parametre i JSON-formatet som {Field: Value}. De flere felter og værdier kan også indtastes i sort()-metoden for at få de sorterede dokumenter fra samlingen. Overvej følgende dokument, hvor vi har indsat mange andre dokumenter i vores database. Navnet på denne MongoDB-database er titlen 'Medarbejdere'. 'Medarbejdere'-samlingen har alle oplysninger om medarbejderne vist nedenfor.

db.Employees.insertMany([
{
'name': 'Robert',
'DOB': '14-05-1993',
'gender': 'mandlig',
'e-mail': ' [e-mail-beskyttet] ',
'afdeling': 'Sikkerhed',
'løn' : 5000
},
{
'navn': 'kyle',
'DOB': '31-05-1999',
'køn kvinde',
'e-mail': ' [e-mail-beskyttet] ',
'afdeling': 'IT',
'løn' : 6200
},
{
'name': 'Matthew',
'DOB': '26-04-1993',
'gender': 'mandlig',
'e-mail': ' [e-mail-beskyttet] ',
'afdeling': 'Konti',
'løn' : 3500
},
{
'name': 'Kevin',
'DOB': '14-07-1991',
'gender': 'mandlig',
'e-mail': ' [e-mail-beskyttet] ',
'afdeling': 'Sikkerhed',
'løn' : 4500
},

{
'navn': 'Julia',
'DOB': '09-12-2000',
'køn kvinde',
'e-mail': ' [e-mail-beskyttet] ',
'afdeling': 'IT',
'løn' : 2500
}
])

Samlingen 'Medarbejder' indsættes med de medfølgende dokumenter, hvis bekræftelse er vist i det følgende output. Vi vil bruge dette samlingsdokument til at vise funktionaliteten af ​​sorteringsforespørgselsresultaterne.









Eksempel # 1: MongoDB Usorteret samling

Når søgeforespørgslen udføres med find()-metoden, giver det altid en usorteret samling af dokumenter. Dette kan være tydeligere med forespørgselsresultaterne nedenfor.



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

Her har vi en forespørgsel til 'Employee'-samlingen med find()-metoden. Find()-metoden tager den tomme parameter sammen med '_id:0'. For et enklere resultat fjernes dokument-id'et ved hjælp af '_id:0'-operatoren. Som standard får vi usorterede samlinger, når forespørgslen søges med metoden find(). Det output, der hentes nedenfor, er alle usorterede dokumenter på en måde, som vi har på indsættelsestidspunktet.





Eksempel # 2: MongoDB Sorter forespørgselsresultater i stigende rækkefølge

Den sorterede samling i MongoDB opnås ved at bruge sort()-metoden, som skal placeres efter find()-metoden. Sort()-metoden i MongoDB tager parameteren, som er inkluderet i feltnavnet og sorteringsrækkefølgen for dokumentet. Vi skal indtaste '1' som en parameter i feltet, da vi vil hente dokumenterne i stigende rækkefølge i dette særlige eksempel. Følgende i sorteringsforespørgslen resulterer i stigende rækkefølge.



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

Her har vi brugt sort() metoden efter find søgeforespørgslen. Sort()-metoden bruges til at sortere feltet 'navn' i stigende rækkefølge, da værdien '1' er placeret ved siden af ​​det angivne felt. Bemærk, at hvis sort()-metoden ikke er angivet med nogen parametrisk værdi, vil samlingen ikke blive sorteret. Outputtet fra sort()-metoden opnås i standardrækkefølgen. Resultaterne af sort()-metoden efter navn-feltet i stigende rækkefølge vises i den følgende MongoDB-skal.

Eksempel # 3: MongoDB Sorter forespørgselsresultater i faldende rækkefølge

Nu viser vi sorteringsforespørgselsresultaterne for MongoDB i faldende rækkefølge. Denne form for forespørgsel er den samme som ovenstående eksempel, men med én forskel. For faldende rækkefølge tager sort()-metoden værdien '-1' mod kolonnenavnet. Sorteringsforespørgslens resultater i faldende rækkefølge er angivet nedenfor.

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

Her begynder søgeforespørgslen med find() metoden, som finder feltet 'email' og returnerer kun feltet 'email' værdier. Dernæst har vi specificeret sort()-metoden, som bruges til at sortere 'e-mail'-feltet, og værdien '-1' ved siden af ​​det indikerer, at de opnåede sorteringsresultater vil være i faldende rækkefølge. Sorteringsforespørgselsresultaterne i faldende rækkefølge hentes efter eksekvering i MongoDB-skallen.

Eksempel # 4: MongoDB Sorter forespørgselsresultater for flere felter

Vi kan sortere de flere felter i MongoDB med sort()-metoden. Felterne, der skal sorteres, skal erklæres i sort()-metoden. Sorteringen er baseret på felternes deklarationsrækkefølge, og sorteringsrækkefølgen undersøges fra venstre mod højre. Forespørgslen til at sortere de flere felter skal se sådan ud:

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

Her sendes sort()-metoden med felterne 'navn' og 'løn', der skal sorteres. Feltet 'navn' fra samlingen 'Medarbejder' sorteres først, fordi det er det første argumentfelt i sort()-metoden. Derefter sorterer sort()-metoden det andet argumentfelt 'løn'. Rækkefølgen af ​​begge felter er '1', hvilket indikerer, at sorteringen vil være i stigende rækkefølge. Outputtet for flere felter af sorteringsforespørgsel genereres i den angivne sorteringsrækkefølge nedenfor.

Eksempel # 5: MongoDB Sorter forespørgselsresultater med Limit Method

Desuden kan sort()-metoden også kombineres med limit()-metoden, som giver det begrænsede antal af de sorterede dokumenter ved den pågældende søgeforespørgsel. Limit()-metoden kræver et heltal som parameter, hvilket begrænser antallet af dokumenter, der skal inkluderes i outputsættet. Søgeforespørgslen er angivet nedenfor, som først sorterer dokumentet og derefter leverer de angivne grænsedokumenter.

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

Her har vi søgeforespørgslen, som starter sorteringsoperationen for kolonnen 'afdeling' og derefter for kolonnen 'DOB' i stigende rækkefølge ved at bruge sort()-metoden. Når sorteringen er gennemført, har vi placeret limit() metoden ved siden af ​​den for at hente det begrænsede dokument. Limit()-metoden får en numerisk værdi '4', hvilket betyder, at den kun viser fire sorterede dokumenter til output som vist på følgende skærm:

Eksempel # 6: MongoDB Sorter forespørgselsresultater med $sort Aggregation

I alle eksemplerne ovenfor har vi udført sorteringen via sort()-metoden i MongoDB. Der er en anden måde at sortere på i MongoDB, som opnås gennem $sort-sammenlægningen. $sort-operatoren sorterer alle inputdokumenter, som derefter returnerer de sorterede dokumenter til pipelinen. $sort-operatøren anvendes på 'Medarbejdere'-samlingen nedenfor.

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

Her har vi kaldt den aggregerede metode, hvori vi kan bruge '$sort'-operatoren. Så har vi $sort-operatorudtrykket, som sorterer kolonnen 'løn' i stigende rækkefølge og kolonnen 'id' i faldende rækkefølge. $sort-sammenlægningen anvendt på feltet giver følgende resultater:

Eksempel # 6: MongoDB Sorter forespørgselsresultater med Skip-metoden

Sort()-metoden kan også parres med skip()-metoden. Det resulterende datasæt kan have et vist antal dokumenter, som vil blive ignoreret ved brug af skip()-metoden. Ligesom limit()-metoden accepterer skip()-metoden også den numeriske værdi, som angiver antallet af dokumenter, der skal springes over. Vi har kombineret sort()-metoden med skip()-metoden i sort-forespørgslen.

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

Her har vi brugt skip()-metoden ved siden af ​​sort()-metoden. Når sort()-metoden sorterer dokumenterne, sender den sorteringsoutputtet til sort()-metoden. Derefter fjernede skip()-metoden de første fire sorterede dokumenter fra samlingen.

Konklusion

Artiklen handler om sorteringsforespørgselsresultaterne i MongoDB. Vi har brugt sort() metoden til dette formål, som organiserer posterne i en specificeret rækkefølge. Vi har også brugt sort()-metoden til multipel sortering på tværs af flere felter. Sort()-metoden parres derefter med limit()- og skip()-metoderne til de sorterede dokumenter ved hjælp af disse operationer. Derudover har vi leveret $sort-sammenlægningen til sorteringsforespørgselsresultater i MongoDB.