MongoDB kārtošanas vaicājuma rezultāti

Mongodb Kartosanas Vaicajuma Rezultati



Gandrīz visas datu bāzu sistēmas piešķir prioritāti datu kārtošanai pirms to izgūšanas, kas tās atšķir no citām datu uzglabāšanas metodēm. MongoDB ir arī dažādi veidi, kā noteikt, kā kārtot datus. Pārsvarā mēs izmantojam sort() metodi, lai noteiktu secību, kādā dokuments parādās. Secības secība tiek nodota kā parametrs sort() metodei. Vienam vai vairākiem laukiem, kas veido sort() metodi, bieži seko vērtība “1” vai “-1”. Sort() metode padara vaicājumu lasāmāku, kas uzlabo konkrētās kolekcijas izpratni.

Kā MongoDB kārto vaicājumu rezultātus?

Kārtošanas metode izmanto lauku un ar to saistīto vērtību kā vienu parametru. Kārtošanas metode pieņem parametrus JSON formātā, piemēram, {Field: Value}. Vairākus laukus un vērtības var ievadīt arī sort() metodē, lai iegūtu sakārtotos dokumentus no kolekcijas. Apsveriet šo dokumentu, kurā mēs savā datubāzē esam ievietojuši daudzus citus dokumentus. Šīs MongoDB datu bāzes nosaukums ir “Darbinieki”. Kolekcijā “Darbinieki” ir visa tālāk norādītā informācija par darbiniekiem.

db.Employees.insertMany([
{
'vārds': 'Roberts',
'DOB': '14-05-1993',
'Dzimums Vīrietis',
'e-pasts': ' [e-pasts aizsargāts] ',
'department': 'Drošība',
'alga': 5000
},
{
'name': 'kyle',
'DOB': '31-05-1999',
'Dzimums Sieviete',
'e-pasts': ' [e-pasts aizsargāts] ',
'departaments': 'IT',
'alga': 6200
},
{
'vārds': 'Matjū',
'DOB': '26-04-1993',
'Dzimums Vīrietis',
'e-pasts': ' [e-pasts aizsargāts] ',
'department': 'Konti',
'alga': 3500
},
{
'vārds': 'Kevins',
'DOB': '14-07-1991',
'Dzimums Vīrietis',
'e-pasts': ' [e-pasts aizsargāts] ',
'department': 'Drošība',
'alga': 4500
},

{
'vārds': 'Jūlija',
'DOB': '09-12-2000',
'Dzimums Sieviete',
'e-pasts': ' [e-pasts aizsargāts] ',
'department': 'IT',
'alga': 2500
}
])

Krājums “Darbinieks” tiek ievietots kopā ar iesniegtajiem dokumentiem, kuru apstiprinājums ir redzams nākamajā izvadā. Mēs izmantosim šo kolekcijas dokumentu, lai parādītu kārtošanas vaicājuma rezultātu funkcionalitāti.









1. piemērs: MongoDB nešķirota kolekcija

Kad meklēšanas vaicājums tiek izpildīts ar metodi find(), tas vienmēr sniedz nešķirotu dokumentu kolekciju. Tas var būt skaidrāks, izmantojot tālāk sniegtos vaicājuma rezultātus.



>db.Darbinieki.atrast({},{_id:0})

Šeit mums ir vaicājums par kolekciju “Darbinieks”, izmantojot metodi find(). Metode find() ņem tukšo parametru kopā ar “_id:0”. Lai iegūtu vienkāršāku rezultātu, dokumenta ID tiek noņemts, izmantojot operatoru “_id:0”. Pēc noklusējuma mēs iegūstam nešķirotas kolekcijas, kad vaicājums tiek meklēts ar metodi find(). Tālāk izgūtā izvade ir visi nešķirotie dokumenti tādā veidā, kāds mums ir ievietošanas laikā.





2. piemērs: MongoDB kārtojiet vaicājuma rezultātus augošā secībā

Sakārtotā kolekcija MongoDB tiek iegūta, izmantojot sort() metodi, kas jānovieto aiz Find() metodes. Sort() metode MongoDB izmanto parametru, kas ir iekļauts lauka nosaukumā un dokumenta kārtošanas secībā. Mums kā parametrs laukā jāievada “1”, jo šajā konkrētajā piemērā mēs izgūsim dokumentus augošā secībā. Tālākais kārtošanas vaicājumā tiek iegūts augošā secībā.



>db.Darbinieki.atrast().kārtot({nosaukums:1})

Šeit mēs esam izmantojuši metodi sort () pēc meklēšanas vaicājuma. Metode sort() tiek izmantota, lai kārtotu lauku 'nosaukums' augošā secībā, jo vērtība '1' tiek novietota blakus norādītajam laukam. Ņemiet vērā: ja metode sort() nav norādīta ar parametru vērtību, kolekcija netiks kārtota. Sort() metodes izvade tiks iegūta noklusējuma secībā. Metodes sort() rezultāti pēc nosaukuma laukā augošā secībā tiek parādīti nākamajā MongoDB apvalkā.

3. piemērs: MongoDB kārtojiet vaicājuma rezultātus dilstošā secībā

Tagad mēs parādām MongoDB kārtošanas vaicājumu rezultātus dilstošā secībā. Šis vaicājuma veids ir tāds pats kā iepriekš minētajā piemērā, taču ar vienu atšķirību. Dilstošā secībā metode sort() ņem vērtību “-1” pret kolonnas nosaukumu. Kārtošanas vaicājuma rezultāti dilstošā secībā ir norādīti tālāk.

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

Šeit meklēšanas vaicājums sākas ar metodi find(), kas atrod lauku “email” un atgriež tikai lauka “email” vērtības. Tālāk mēs esam norādījuši metodi sort(), kas tiek izmantota lauka “e-pasts” kārtošanai, un blakus esošā vērtība “-1” norāda, ka iegūtie kārtošanas rezultāti būs dilstošā secībā. Dilstošā secībā kārtošanas vaicājuma rezultāti tiek iegūti pēc tā izpildes MongoDB apvalkā.

4. piemērs: MongoDB kārtojiet vaicājuma rezultātus vairākiem laukiem

Mēs varam kārtot vairākus MongoDB laukus, izmantojot metodi sort (). Kārtojamie lauki ir jādeklarē sort() metodē. Kārtošana tiek veikta, pamatojoties uz lauku deklarēšanas secību, un kārtošanas secība tiek pārbaudīta no kreisās uz labo pusi. Vairāku lauku kārtošanas vaicājumam vajadzētu izskatīties šādi:

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

Šeit tiek nodota metode sort() ar kārtojamiem laukiem “nosaukums” un “alga”. Lauks “nosaukums” no kolekcijas “Darbinieks” tiek kārtots vispirms, jo tas ir pirmais sort() metodes argumenta lauks. Pēc tam metode sort() sakārto otro argumenta lauku “alga”. Abu lauku secība ir “1”, kas norāda, ka šķirošana notiks augošā secībā. Izvade vairākiem kārtošanas vaicājuma laukiem tiek ģenerēta tālāk norādītajā kārtošanas secībā.

5. piemērs: MongoDB kārtojiet vaicājuma rezultātus ar ierobežojuma metodi

Turklāt metodi sort() var apvienot arī ar limit() metodi, kas nodrošina ierobežotu skaitu sakārtoto dokumentu pēc šī meklēšanas vaicājuma. Limit() metodei kā parametrs ir nepieciešams vesels skaitlis, kas ierobežo dokumentu skaitu, kas jāiekļauj izvades kopā. Zemāk ir iestatīts meklēšanas vaicājums, kas vispirms sakārto dokumentu un pēc tam nodrošina norādītos limita dokumentus.

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

Šeit mums ir meklēšanas vaicājums, kas sāk kārtošanas darbību kolonnai “departments” un pēc tam kolonnai “DOB” augošā secībā, izmantojot metodi sort (). Kad kārtošana ir pabeigta, mēs esam novietojuši limita () metodi blakus tai ierobežotā dokumenta izgūšanai. Limit() metodei tiek piešķirta skaitliska vērtība “4”, kas nozīmē, ka tā izvadā parāda tikai četrus sakārtotus dokumentus, kā parādīts nākamajā ekrānā:

6. piemērs: MongoDB kārtošanas vaicājuma rezultāti ar $sort apkopojumu

Visos iepriekš minētajos piemēros mēs esam veikuši kārtošanu, izmantojot MongoDB metodi sort (). Ir vēl viens kārtošanas veids pakalpojumā MongoDB, kas tiek veikts, izmantojot $sort agregāciju. Operators $sort sakārto visus ievades dokumentus, kas pēc tam atgriež sašķirotos dokumentus konveijerā. Operators $sort tiek lietots tālāk norādītajai kolekcijai “Darbinieki”.

db.Employees.aggregate([ { $šķirt : { alga : 1, _id: -1 } } ])

Šeit mēs esam izsaukuši apkopošanas metodi, kurā mēs varam izmantot operatoru “$sort”. Pēc tam mums ir operatora izteiksme $sort, kas sakārto kolonnu “alga” augošā secībā un kolonnu “id” dilstošā secībā. Laukā lietotā $sort agregācija izvada šādus rezultātus:

6. piemērs: MongoDB kārtojiet vaicājuma rezultātus, izmantojot izlaišanas metodi

Sort() metodi var arī savienot pārī ar skip() metodi. Iegūtajā datu kopā var būt noteikts skaits dokumentu, kas tiks ignorēti, izmantojot skip() metodi. Tāpat kā limit() metode, arī skip() metode pieņem skaitlisko vērtību, kas norāda izlaižamo dokumentu skaitu. Kārtošanas vaicājumā esam apvienojuši metodi sort() ar skip() metodi.

>db.Darbinieki.atrast({},{_id:0}).kārtot({'alga':1}).izlaist(4).pretty()

Šeit mēs esam izmantojuši skip () metodi blakus šķirošanas () metodei. Kad metode sort() sakārto dokumentus, tā nodod šķirošanas izvadi sort() metodei. Pēc tam skip() metode no kolekcijas izņēma pirmos četrus sakārtotos dokumentus.

Secinājums

Raksts ir par kārtošanas vaicājuma rezultātiem MongoDB. Šim nolūkam esam izmantojuši metodi sort(), kas ierakstus sakārto noteiktā secībā. Mēs esam izmantojuši arī metodi sort() vairākkārtējai šķirošanai vairākos laukos. Pēc tam metode sort() tiek savienota pārī ar limit() un skip() metodēm kārtotajiem dokumentiem, izmantojot šīs darbības. Turklāt mēs esam nodrošinājuši $sort apkopojumu kārtošanas vaicājuma rezultātiem MongoDB.