MongoDB Ταξινόμηση αποτελεσμάτων ερωτήματος

Mongodb Taxinomese Apotelesmaton Erotematos



Σχεδόν όλα τα συστήματα βάσεων δεδομένων δίνουν προτεραιότητα στην ταξινόμηση των δεδομένων πριν από την ανάκτησή τους, γεγονός που τα ξεχωρίζει από άλλες μεθόδους αποθήκευσης δεδομένων. Το MongoDB έχει επίσης διάφορους τρόπους για να καθορίσει τον τρόπο ταξινόμησης των δεδομένων. Κυρίως, χρησιμοποιούμε τη μέθοδο sort() για να προσδιορίσουμε τη σειρά στην οποία εμφανίζεται το έγγραφο. Η σειρά της ακολουθίας μεταβιβάζεται ως παράμετρος στη μέθοδο sort(). Το ένα ή περισσότερα πεδία που συνθέτουν τη μέθοδο sort() ακολουθούνται συχνά είτε από τιμή '1' ή '-1'. Η μέθοδος sort() κάνει ένα ερώτημα πιο ευανάγνωστο, γεγονός που βελτιώνει την κατανόηση μιας συγκεκριμένης συλλογής.

Πώς ταξινομεί το MongoDB τα αποτελέσματα ερωτημάτων;

Η μέθοδος ταξινόμησης λαμβάνει το πεδίο και τη σχετική τιμή ως μία παράμετρο. Η μέθοδος ταξινόμησης δέχεται παραμέτρους σε μορφή JSON όπως {Field: Value}. Τα πολλαπλά πεδία και οι τιμές μπορούν επίσης να εισαχθούν στη μέθοδο sort() για να ληφθούν τα ταξινομημένα έγγραφα από τη συλλογή. Εξετάστε το ακόλουθο έγγραφο στο οποίο έχουμε εισαγάγει πολλά άλλα έγγραφα στη βάση δεδομένων μας. Το όνομα αυτής της βάσης δεδομένων MongoDB τιτλοφορείται 'Εργαζόμενοι'. Η συλλογή «Εργαζόμενοι» έχει όλες τις πληροφορίες των εργαζομένων που φαίνονται παρακάτω.

db.Employees.insertMany([
{
'όνομα': 'Ρόμπερτ',
'DOB': '14-05-1993',
'ανδρικό φύλο',
'ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ': ' [email προστατεύεται] ',
'τμήμα': 'Ασφάλεια',
'Μισθός' : 5000
},
{
'όνομα': 'kyle',
'DOB': '31-05-1999',
'γυναικείο φύλο',
'ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ': ' [email προστατεύεται] ',
'τμήμα': 'IT',
'μισθός' : 6200
},
{
'όνομα': 'Ματθαίος',
'DOB': '26-04-1993',
'ανδρικό φύλο',
'ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ': ' [email προστατεύεται] ',
'τμήμα': 'Λογαριασμοί',
'Μισθός' : 3500
},
{
'όνομα': 'Κέβιν',
'DOB': '14-07-1991',
'ανδρικό φύλο',
'ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ': ' [email προστατεύεται] ',
'τμήμα': 'Ασφάλεια',
'Μισθός' : 4500
},

{
'όνομα': 'Τζούλια',
'DOB': '09-12-2000',
'γυναικείο φύλο',
'ΗΛΕΚΤΡΟΝΙΚΗ ΔΙΕΥΘΥΝΣΗ': ' [email προστατεύεται] ',
'τμήμα': 'IT',
'Μισθός' : 2500
}
])

Η συλλογή «Εργαζόμενος» εισάγεται με τα παρεχόμενα έγγραφα των οποίων η επιβεβαίωση εμφανίζεται στην ακόλουθη έξοδο. Θα χρησιμοποιήσουμε αυτό το έγγραφο συλλογής για να δείξουμε τη λειτουργικότητα των αποτελεσμάτων του ερωτήματος ταξινόμησης.









Παράδειγμα # 1: Μη ταξινομημένη συλλογή MongoDB

Όταν το ερώτημα αναζήτησης εκτελείται με τη μέθοδο find(), δίνει πάντα μια μη ταξινομημένη συλλογή εγγράφων. Αυτό μπορεί να γίνει πιο ξεκάθαρο με τα αποτελέσματα ερωτημάτων που παρέχονται παρακάτω.



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

Εδώ, έχουμε ένα ερώτημα της συλλογής 'Εργαζόμενος' με τη μέθοδο find(). Η μέθοδος find() παίρνει την κενή παράμετρο μαζί με το '_id:0'. Για απλούστερο αποτέλεσμα, το αναγνωριστικό εγγράφου αφαιρείται χρησιμοποιώντας τον τελεστή «_id:0». Από προεπιλογή, λαμβάνουμε μη ταξινομημένες συλλογές όταν το ερώτημα αναζητείται με τη μέθοδο find(). Η έξοδος που ανακτάται παρακάτω είναι όλα τα μη ταξινομημένα έγγραφα με τρόπο που έχουμε τη στιγμή της εισαγωγής.





Παράδειγμα # 2: MongoDB Ταξινόμηση αποτελεσμάτων ερωτήματος σε αύξουσα σειρά

Η ταξινομημένη συλλογή στο MongoDB λαμβάνεται χρησιμοποιώντας τη μέθοδο sort() που πρέπει να τοποθετηθεί μετά τη μέθοδο find(). Η μέθοδος sort() στο MongoDB λαμβάνει την παράμετρο που περιλαμβάνεται με το όνομα του πεδίου και τη σειρά ταξινόμησης του εγγράφου. Πρέπει να εισαγάγουμε το '1' ως παράμετρο στο πεδίο, καθώς θα ανακτήσουμε τα έγγραφα με αύξουσα σειρά στο συγκεκριμένο παράδειγμα. Τα ακόλουθα στο ερώτημα ταξινόμησης καταλήγουν σε αύξουσα σειρά.



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

Εδώ, χρησιμοποιήσαμε τη μέθοδο sort() μετά το ερώτημα αναζήτησης εύρεσης. Η μέθοδος sort() χρησιμοποιείται για την ταξινόμηση του πεδίου 'όνομα' σε αύξουσα σειρά καθώς η τιμή '1' τοποθετείται δίπλα στο καθορισμένο πεδίο. Σημειώστε ότι εάν η μέθοδος sort() δεν έχει καθοριστεί με καμία παραμετρική τιμή, τότε η συλλογή δεν θα ταξινομηθεί. Η έξοδος από τη μέθοδο sort() θα ληφθεί με την προεπιλεγμένη σειρά. Τα αποτελέσματα της μεθόδου sort() ανά πεδίο ονόματος σε αύξουσα σειρά εμφανίζονται στο ακόλουθο κέλυφος MongoDB.

Παράδειγμα # 3: MongoDB Ταξινόμηση αποτελεσμάτων ερωτήματος με φθίνουσα σειρά

Τώρα, δείχνουμε τα αποτελέσματα του ερωτήματος ταξινόμησης του MongoDB με φθίνουσα σειρά. Αυτό το είδος ερωτήματος είναι το ίδιο με το παραπάνω παράδειγμα, αλλά με μια διαφορά. Για φθίνουσα σειρά, η μέθοδος sort() παίρνει την τιμή '-1' σε σχέση με το όνομα της στήλης. Τα αποτελέσματα του ερωτήματος ταξινόμησης με φθίνουσα σειρά δίνονται παρακάτω.

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

Εδώ, το ερώτημα αναζήτησης ξεκινά με τη μέθοδο find() που βρίσκει το πεδίο 'email' και επιστρέφει μόνο τις τιμές του πεδίου 'email'. Στη συνέχεια, έχουμε καθορίσει τη μέθοδο sort() που χρησιμοποιείται για την ταξινόμηση του πεδίου 'email' και η τιμή '-1' δίπλα του υποδεικνύει ότι τα αποτελέσματα ταξινόμησης που λαμβάνονται θα είναι με φθίνουσα σειρά. Τα αποτελέσματα του ερωτήματος ταξινόμησης φθίνουσας σειράς λαμβάνονται μετά την εκτέλεσή του στο κέλυφος MongoDB.

Παράδειγμα # 4: MongoDB Ταξινόμηση αποτελεσμάτων ερωτήματος για πολλά πεδία

Μπορούμε να ταξινομήσουμε τα πολλαπλά πεδία στο MongoDB με τη μέθοδο sort(). Τα πεδία προς ταξινόμηση πρέπει να δηλώνονται στη μέθοδο sort(). Η ταξινόμηση βασίζεται στη σειρά δήλωσης των πεδίων και η σειρά ταξινόμησης εξετάζεται από αριστερά προς τα δεξιά. Το ερώτημα για την ταξινόμηση των πολλαπλών πεδίων θα πρέπει να μοιάζει με αυτό:

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

Εδώ, η μέθοδος sort() μεταβιβάζεται με τα πεδία 'name' και 'salary' προς ταξινόμηση. Το πεδίο 'όνομα' από τη συλλογή 'Εργαζόμενος' ταξινομείται πρώτα επειδή είναι το πρώτο πεδίο ορίσματος της μεθόδου sort(). Στη συνέχεια, η μέθοδος sort() ταξινομεί το δεύτερο πεδίο ορίσματος 'μισθός'. Η σειρά και των δύο πεδίων είναι '1' που δείχνει ότι η ταξινόμηση θα γίνει με αύξουσα σειρά. Η έξοδος για πολλαπλά πεδία ερωτήματος ταξινόμησης δημιουργείται με την καθορισμένη σειρά ταξινόμησης παρακάτω.

Παράδειγμα # 5: MongoDB Ταξινόμηση αποτελεσμάτων ερωτήματος με μέθοδο ορίου

Επιπλέον, η μέθοδος sort() μπορεί επίσης να συνδυαστεί με τη μέθοδο limit() που δίνει τον περιορισμένο αριθμό των ταξινομημένων εγγράφων από αυτό το ερώτημα αναζήτησης. Η μέθοδος limit() απαιτεί έναν ακέραιο ως παράμετρο, ο οποίος περιορίζει τον αριθμό των εγγράφων που πρέπει να περιλαμβάνονται στο σύνολο εξόδου. Το ερώτημα αναζήτησης ορίζεται κάτω από το οποίο ταξινομεί πρώτα το έγγραφο και στη συνέχεια παρέχει τα καθορισμένα έγγραφα ορίου.

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

Εδώ, έχουμε το ερώτημα αναζήτησης που ξεκινά τη λειτουργία ταξινόμησης για τη στήλη 'τμήμα' και στη συνέχεια για τη στήλη 'DOB' σε αύξουσα σειρά χρησιμοποιώντας τη μέθοδο sort(). Μόλις ολοκληρωθεί η ταξινόμηση, έχουμε τοποθετήσει τη μέθοδο limit() δίπλα της για την ανάκτηση του περιορισμένου εγγράφου. Στη μέθοδο limit() δίνεται μια αριθμητική τιμή '4', που σημαίνει ότι εμφανίζει μόνο τέσσερα ταξινομημένα έγγραφα στην έξοδο, όπως φαίνεται στην ακόλουθη οθόνη:

Παράδειγμα # 6: MongoDB Ταξινόμηση αποτελεσμάτων ερωτήματος με συνάθροιση $sort

Σε όλα τα παραπάνω παραδείγματα, έχουμε πραγματοποιήσει την ταξινόμηση μέσω της μεθόδου sort() του MongoDB. Υπάρχει ένας άλλος τρόπος ταξινόμησης στο MongoDB που επιτυγχάνεται μέσω της συνάθροισης $sort. Ο τελεστής $sort ταξινομεί όλα τα έγγραφα εισόδου και στη συνέχεια επιστρέφει τα ταξινομημένα έγγραφα στη διοχέτευση. Ο τελεστής $sort εφαρμόζεται στη συλλογή 'Εργαζόμενοι' παρακάτω.

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

Εδώ, καλέσαμε τη συγκεντρωτική μέθοδο μέσα στην οποία μπορούμε να χρησιμοποιήσουμε τον τελεστή '$sort'. Στη συνέχεια, έχουμε την έκφραση τελεστή $sort που ταξινομεί τη στήλη 'μισθός' σε αύξουσα σειρά και τη στήλη 'id' σε φθίνουσα σειρά. Η συνάθροιση $sort που εφαρμόζεται στο πεδίο δίνει τα ακόλουθα αποτελέσματα:

Παράδειγμα # 6: MongoDB Ταξινόμηση αποτελεσμάτων ερωτήματος με μέθοδο παράλειψης

Η μέθοδος sort() μπορεί επίσης να συνδυαστεί με τη μέθοδο skip(). Το σύνολο δεδομένων που προκύπτει μπορεί να έχει έναν ορισμένο αριθμό εγγράφων που θα αγνοηθούν χρησιμοποιώντας τη μέθοδο skip(). Όπως η μέθοδος limit(), η μέθοδος skip() δέχεται επίσης την αριθμητική τιμή που υποδεικνύει τον αριθμό των εγγράφων που πρέπει να παραβλεφθούν. Έχουμε συνδυάσει τη μέθοδο sort() με τη μέθοδο skip() στο ερώτημα ταξινόμησης.

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

Εδώ, χρησιμοποιήσαμε τη μέθοδο skip() δίπλα στη μέθοδο sort(). Όταν η μέθοδος sort() ταξινομεί τα έγγραφα, τότε περνά την έξοδο ταξινόμησης στη μέθοδο sort(). Μετά από αυτό, η μέθοδος skip() αφαίρεσε τα πρώτα τέσσερα ταξινομημένα έγγραφα από τη συλλογή.

συμπέρασμα

Το άρθρο αφορά τα αποτελέσματα του ερωτήματος ταξινόμησης στο MongoDB. Χρησιμοποιήσαμε τη μέθοδο sort() για αυτό το σκοπό η οποία οργανώνει τις εγγραφές σε μια καθορισμένη ακολουθία. Χρησιμοποιήσαμε επίσης τη μέθοδο sort() για πολλαπλή ταξινόμηση σε πολλά πεδία. Στη συνέχεια, η μέθοδος sort() ζευγαρώνεται με τις μεθόδους limit() και skip() στα ταξινομημένα έγγραφα χρησιμοποιώντας αυτές τις λειτουργίες Επιπλέον, έχουμε παράσχει τη συγκέντρωση $sort για αποτελέσματα ερωτήματος ταξινόμησης στο MongoDB.