Resultats de la consulta d'ordenació de MongoDB

Resultats De La Consulta D Ordenacio De Mongodb



Gairebé tots els sistemes de bases de dades prioritzen l'ordenació de les dades abans de recuperar-les, cosa que les diferencia d'altres mètodes d'emmagatzematge de dades. MongoDB també té diverses maneres de determinar com ordenar les dades. Majoritàriament, utilitzem el mètode sort() per determinar la seqüència en què apareix el document. L'ordre de la seqüència es passa com a paràmetre al mètode sort(). Els un o més camps que componen el mètode sort() solen ser seguits per un valor '1' o un '-1'. El mètode sort() fa que una consulta sigui més llegible, la qual cosa millora la comprensió d'una col·lecció especificada.

Com ordena MongoDB els resultats de la consulta?

El mètode d'ordenació pren el camp i el seu valor associat com un únic paràmetre. El mètode d'ordenació accepta paràmetres en format JSON com {Field: Value}. Els diversos camps i valors també es poden introduir al mètode sort() per obtenir els documents ordenats de la col·lecció. Considereu el següent document en el qual hem inserit molts altres documents a la nostra base de dades. El nom d'aquesta base de dades MongoDB es titula 'Empleats'. La col·lecció 'Empleats' té tota la informació dels empleats que es mostra a continuació.

db.Employees.insertMany([
{
'nom': 'Robert',
'DOB': '14-05-1993',
'gènere masculí',
'correu electrònic': ' [correu electrònic protegit] ',
'department': 'Seguretat',
'salari': 5000
},
{
'nom': 'kyle',
'DOB': '31-05-1999',
'gènere femení',
'correu electrònic': ' [correu electrònic protegit] ',
'departament': 'IT',
'salari': 6200
},
{
'name': 'Mateu',
'DOB': '26-04-1993',
'gènere masculí',
'correu electrònic': ' [correu electrònic protegit] ',
'department': 'Comptes',
'salari': 3500
},
{
'name': 'Kevin',
'DOB': '14-07-1991',
'gènere masculí',
'correu electrònic': ' [correu electrònic protegit] ',
'department': 'Seguretat',
'salari': 4500
},

{
'nom': 'Julia',
'DOB': '09-12-2000',
'gènere femení',
'correu electrònic': ' [correu electrònic protegit] ',
'departament': 'IT',
'salari': 2500
}
])

La col·lecció “Empleat” s'insereix amb els documents aportats la confirmació dels quals es mostra a la sortida següent. Utilitzarem aquest document de col·lecció per mostrar la funcionalitat dels resultats de la consulta d'ordenació.









Exemple # 1: Col·lecció no ordenada de MongoDB

Quan la consulta de cerca s'executa amb el mètode find(), sempre ofereix una col·lecció de documents sense ordenar. Això pot quedar més clar amb els resultats de la consulta que es proporcionen a continuació.



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

Aquí, tenim una consulta de la col·lecció 'Empleat' amb el mètode find(). El mètode find() pren el paràmetre buit juntament amb el '_id:0'. Per a un resultat més senzill, l'identificador del document s'elimina mitjançant l'operador '_id:0'. Per defecte, obtenim col·leccions no ordenades quan la consulta es cerca amb el mètode find(). La sortida que es recupera a continuació són tots els documents no ordenats de la manera que tenim en el moment de la inserció.





Exemple # 2: MongoDB ordena els resultats de la consulta en ordre ascendent

La col·lecció ordenada a MongoDB s'obté mitjançant el mètode sort() que s'ha de col·locar després del mètode find(). El mètode sort() a MongoDB pren el paràmetre que s'inclou amb el nom del camp i l'ordre d'ordenació del document. Hem d'introduir '1' com a paràmetre al camp, ja que recuperarem els documents en ordre ascendent en aquest exemple concret. El següent a la consulta d'ordenació resulta en ordre ascendent.



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

Aquí, hem utilitzat el mètode sort() després de la consulta de cerca find. El mètode sort() s'utilitza per ordenar el camp 'nom' en ordre ascendent, ja que el valor '1' es col·loca al costat del camp especificat. Tingueu en compte que si el mètode sort() no s'especifica amb cap valor paramètric, la col·lecció no s'ordenarà. La sortida del mètode sort() s'obtindrà en l'ordre predeterminat. Els resultats del mètode sort() per camp de nom en ordre ascendent es mostren al següent shell de MongoDB.

Exemple # 3: MongoDB ordena els resultats de la consulta en ordre descendent

Ara, estem mostrant els resultats de la consulta d'ordenació de MongoDB en ordre descendent. Aquest tipus de consulta és la mateixa que l'exemple anterior però amb una diferència. Per a l'ordre descendent, el mètode sort() pren el valor '-1' contra el nom de la columna. Els resultats de la consulta d'ordenació en ordre descendent es mostren a continuació.

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

Aquí, la consulta de cerca comença amb el mètode find() que troba el camp 'correu electrònic' i només retorna els valors del camp 'correu electrònic'. A continuació, hem especificat el mètode sort() que s'utilitza per ordenar el camp 'correu electrònic', i el valor '-1' al costat indica que els resultats d'ordenació obtinguts seran en ordre descendent. Els resultats de la consulta d'ordenació decreixent s'obtenen després d'executar-lo a l'intèrpret d'ordres de MongoDB.

Exemple # 4: MongoDB Ordena els resultats de la consulta per a diversos camps

Podem ordenar els diversos camps de MongoDB amb el mètode sort(). Els camps a ordenar s'han de declarar amb el mètode sort(). L'ordenació es basa en l'ordre de declaració dels camps i l'ordre d'ordenació s'examina d'esquerra a dreta. La consulta per ordenar els diversos camps hauria de ser així:

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

Aquí, el mètode sort() es passa amb els camps 'nom' i 'salari' a ordenar. El camp 'nom' de la col·lecció 'Empleat' s'ordena primer perquè és el primer camp d'argument del mètode sort(). Aleshores, el mètode sort() ordena el segon camp d'argument 'salari'. L'ordre dels dos camps és '1', la qual cosa indica que l'ordenació serà en ordre ascendent. La sortida per a diversos camps de consulta d'ordenació es genera en l'ordre d'ordenació especificat a continuació.

Exemple # 5: MongoDB Ordena els resultats de la consulta amb el mètode de límit

A més, el mètode sort() també es pot combinar amb el mètode limit() que proporciona el nombre limitat de documents ordenats per aquesta consulta de cerca. El mètode limit() requereix un nombre enter com a paràmetre, que limita el nombre de documents que s'han d'incloure al conjunt de sortida. La consulta de cerca s'estableix a continuació, que primer ordena el document i després proporciona els documents de límit especificats.

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

Aquí, tenim la consulta de cerca que comença l'operació d'ordenació per a la columna 'departament' i després per a la columna 'DOB' en ordre ascendent mitjançant el mètode sort(). Un cop realitzada l'ordenació, hem col·locat el mètode limit() al costat per recuperar el document limitat. El mètode limit() rep un valor numèric '4', el que significa que només mostra quatre documents ordenats a la sortida, tal com es mostra a la pantalla següent:

Exemple # 6: MongoDB Ordena els resultats de la consulta amb l'agregació $sort

En tots els exemples anteriors, hem realitzat l'ordenació mitjançant el mètode sort() de MongoDB. Hi ha una altra manera d'ordenar a MongoDB que s'aconsegueix mitjançant l'agregació $sort. L'operador $sort ordena tots els documents d'entrada que després retorna els documents ordenats a la canalització. L'operador $sort s'aplica a la col·lecció 'Empleats' a continuació.

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

Aquí, hem cridat el mètode agregat dins del qual podem utilitzar l'operador '$sort'. Aleshores, tenim l'expressió de l'operador $sort que ordena la columna 'salari' en ordre ascendent i la columna 'id' en ordre descendent. L'agregació $sort aplicada al camp dóna els resultats següents:

Exemple # 6: MongoDB Ordena els resultats de la consulta amb el mètode Skip

El mètode sort() també es pot combinar amb el mètode skip(). El conjunt de dades resultant pot tenir un cert nombre de documents que s'ignoraran mitjançant el mètode skip(). Igual que el mètode limit(), el mètode skip() també accepta el valor numèric que indica el nombre de documents que s'han d'ometre. Hem combinat el mètode sort() amb el mètode skip() a la consulta d'ordenació.

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

Aquí, hem utilitzat el mètode skip() al costat del mètode sort(). Quan el mètode sort() ordena els documents, passa la sortida d'ordenació al mètode sort(). Després d'això, el mètode skip() va eliminar els quatre primers documents ordenats de la col·lecció.

Conclusió

L'article tracta sobre els resultats de la consulta d'ordenació a MongoDB. Hem utilitzat el mètode sort() per a aquest propòsit que organitza els registres en una seqüència especificada. També hem utilitzat el mètode sort() per ordenar múltiples en diversos camps. A continuació, el mètode sort() es combina amb els mètodes limit() i skip() als documents ordenats mitjançant aquestes operacions. A més, hem proporcionat l'agregació $sort per als resultats de la consulta d'ordenació a MongoDB.