MongoDB $Min Operator

Mongodb Min Operator



Εάν δεν είστε νέος χρήστης βάσεων δεδομένων ή προγραμματισμού, πρέπει να έχετε δοκιμάσει τα προγράμματα και τα ερωτήματα που χρησιμοποιούν τους τελεστές σύγκρισης – μεγαλύτερο από, μικρότερο από, ίσο με κ.λπ. Στο MongoDB, όπου χρησιμοποιούμε τον τελεστή '$set' για ενημερώστε μια συγκεκριμένη εγγραφή πεδίου ή προσθέστε μια νέα εγγραφή στη βάση δεδομένων, μπορούμε επίσης να επιτύχουμε το ίδιο αποτέλεσμα χρησιμοποιώντας τους τελεστές σύγκρισης όπως '$min' και '$max'. Στο MongoDB, ο τελεστής '$min' μπορεί να χρησιμοποιηθεί σε πολλά ερωτήματα συνάρτησης για την ενημέρωση ενός συγκεκριμένου πεδίου όταν μια νέα τιμή είναι μικρότερη από την τιμή που έχει ήδη εισαχθεί. Επίσης, μπορεί να χρησιμοποιηθεί για την ομαδοποίηση και εμφάνιση των εγγραφών μιας συλλογής με συγκεκριμένη σειρά. Αυτός ο οδηγός σάς βοηθά με διάφορους τρόπους για να απορρίψετε τον τελεστή '$min' στο MongoDB.

Παράδειγμα 1:

Ξεκινώντας με την πρώτη απεικόνιση, παρουσιάζουμε τη χρήση του τελεστή «$min» στο MongoDB για την ενημέρωση μιας ήδη εισαγόμενης εγγραφής χρησιμοποιώντας το εργαλείο κελύφους MongoDB στο σύστημα των Windows. Επομένως, πρέπει να έχετε κάποιες εγγραφές που έχουν ήδη προστεθεί στη βάση δεδομένων σας. Έτσι, χρησιμοποιούμε το ερώτημα συνάρτησης insertMany() για να προσθέσουμε συνολικά 5 εγγραφές στη συλλογή 'παραγγελίας' μιας βάσης δεδομένων 'δοκιμής'. Κάθε μία από τις καταχωρημένες εγγραφές που εμφανίζονται στην παρακάτω εικόνα περιέχει συνολικά 4 πεδία – αναγνωριστικό, τίτλος, τιμή πώλησης και φόρος. Αυτά τα δεδομένα 5 εγγραφών εισάγονται με επιτυχία σύμφωνα με τη συνημμένη έξοδο:

δοκιμή > db.order.insertΠολλοί ( [ { 'ταυτότητα' :01, 'Τίτλος' : 'Σαπούνι' , 'Τιμή πώλησης' : 500 , 'Φόρος' : 24 } ,
... { 'ταυτότητα' :02, 'Τίτλος' : 'σαμπουάν' , 'Τιμή πώλησης' : 700 , 'Φόρος' : 27 } ,
... { 'ταυτότητα' :03, 'Τίτλος' : 'Απορρυπαντικό' , 'Τιμή πώλησης' : 400 , 'Φόρος' : 22 } ,
... { 'ταυτότητα' :04, 'Τίτλος' : 'Αρωμα' , 'Τιμή πώλησης' : 900 , 'Φόρος' : 30 } ,
... { 'ταυτότητα' :05, 'Τίτλος' : 'Ομίχλη' , 'Τιμή πώλησης' : 850 , 'Φόρος' : 27 } ] )







Ήρθε η ώρα να κοιτάξετε την εισαγόμενη εγγραφή σε μια «δοκιμαστική» βάση δεδομένων. Για αυτό, πρέπει να απορρίψετε τη μέθοδο 'find()' μαζί με τη μέθοδο 'forEach', λαμβάνοντας το 'printjson' ως όρισμα στην εντολή 'db'. Χρησιμοποιώντας τη συλλογή με το όνομα «παραγγελία», εμφανίζεται μια εγγραφή στην οθόνη.



δοκιμή > db.παραγγελία.εύρεση ( ) .για κάθε ( printjson )



Ήρθε η ώρα να χρησιμοποιήσετε τον τελεστή '$min' στο ερώτημα συνάρτησης 'updateOne' για να ενημερώσετε μια μεμονωμένη εγγραφή από τη συλλογή 'παραγγελία' που μόλις δημιουργήθηκε. Το πεδίο 'id' χρησιμοποιείται ως μοναδικό αναγνωριστικό για την ενημέρωση μιας συγκεκριμένης εγγραφής από μια βάση δεδομένων, ενώ ο τελεστής '$min' εφαρμόζεται σε ένα πεδίο 'SalePrice' για να ενημερώσει την τιμή του σε 600 εάν είναι μικρότερη από την ήδη εισαγόμενη τιμή. Το μήνυμα εξόδου δείχνει ότι το ερώτημα είναι επιτυχές αλλά δεν γίνονται ενημερώσεις.





δοκιμή > db.order.updateOne ( { ταυτότητα: 3 } , { $min : { Τιμή πώλησης: 600 } } )

Ο λόγος για τον οποίο δεν γίνεται ενημέρωση στο πεδίο 'SalePrice' της 3ης εγγραφής είναι ότι περιέχει την τιμή '400' που είναι μικρότερη από '600'. Επομένως, ο τελεστής '$min' δεν ενημερώνει την ελάχιστη τιμή '400' με μεγαλύτερη τιμή '600' σύμφωνα με το ακόλουθο συνημμένο ερώτημα find():



δοκιμή > db.παραγγελία.εύρεση ( ) .για κάθε ( printjson )

Ας κάνουμε μια μικρή αλλαγή στο ερώτημα ενημέρωσης για να έχουμε διαφορετικό αποτέλεσμα αυτή τη φορά. Χρησιμοποιούμε την ίδια εντολή 'db' που χρησιμοποιεί τη συνάρτηση 'updateOne' σε αυτήν για να τροποποιήσουμε μια μεμονωμένη εγγραφή του '3'. Ο τελεστής '$min' εφαρμόζεται στο πεδίο 'SalePrice' για να ορίσει την τιμή του σε '300' εάν η τιμή του '300' είναι μικρότερη από την τιμή που έχει ήδη εισαχθεί. Γνωρίζουμε ότι η ήδη εισαγόμενη τιμή του '400' του πεδίου SalePrice είναι μεγαλύτερη από τη νέα τιμή '300' που θα συγκριθεί. Έτσι, αντικαθιστά το '400' με το '300' αυτή τη φορά. Το μήνυμα εξόδου δείχνει την επιτυχή εκτέλεση αυτού του ερωτήματος. Το τροποποιημένο πλήθος = 1 σημαίνει ότι έχει τροποποιηθεί 1 εγγραφή.

δοκιμή > db.order.updateOne ( { ταυτότητα: 3 } , { $min : { Τιμή πώλησης: 300 } } )

Μετά την εμφάνιση των εγγραφών μιας συλλογής 'παραγγελίας' από τη βάση δεδομένων 'δοκιμή' σε μορφή JSON μέσω της εντολής συνάρτησης 'find()' στο κέλυφος MongoDB, διαπιστώσαμε ότι η 3η εγγραφή ενημερώθηκε με επιτυχία. Η τιμή 400 του πεδίου «Τιμή πώλησης» αντικαθίσταται από την τιμή 300.

δοκιμή > db.παραγγελία.εύρεση ( ) .για κάθε ( printjson )

Παράδειγμα 2:

Σε αυτήν την απεικόνιση MongoDB, ανακτούμε τις εγγραφές μιας συγκεκριμένης βάσης δεδομένων ομαδοποιώντας τις σχετικά με τον τελεστή '$min' σύμφωνα με την ελάχιστη τιμή στις εγγραφές. Ας υποθέσουμε ότι έχετε τις ίδιες 5 εγγραφές στη συλλογή 'παραγγελίας' της βάσης δεδομένων 'δοκιμής' του MongoDB και πρέπει να έχετε μερικά διπλά δεδομένα στα συγκεκριμένα πεδία μιας βάσης δεδομένων 'δοκιμής'. Για αυτό, προσθέτουμε περισσότερες εγγραφές στη συλλογή 'παραγγελίας' της βάσης δεδομένων 'δοκιμής'. Αυτή τη φορά, εισάγουμε τις διπλές τιμές για το πεδίο «Τίτλος». Χρησιμοποιείται σε μια πρόταση '$group' για να σχηματίσει μια ομάδα μοναδικών τιμών. Η ακόλουθη έξοδος εμφανίζει τις νέες 3 εγγραφές που εισήχθησαν για τη βάση δεδομένων 'δοκιμής'. Τώρα, η συλλογή 'παραγγελία' έχει διπλότυπες τιμές για το πεδίο 'Τίτλος' σε σύγκριση με τις 5 παλιές εγγραφές. Τα υπόλοιπα χρησιμοποιούν το ίδιο.

Αφού έχετε συνολικά 8 εγγραφές στη συλλογή 'παραγγελίας' της βάσης δεδομένων 'δοκιμής', ήρθε η ώρα να δοκιμάσετε τον χειριστή $min του MongoDB μετά την εφαρμογή του σε ένα συγκεκριμένο πεδίο που ομαδοποιείται από άλλο πεδίο. Η συνημμένη εντολή συγκεντρωτικών έχει να κάνει με αυτό. Ξεκινά με τη λέξη-κλειδί «db» ακολουθούμενη από το όνομα μιας συλλογής σε μια συγκεκριμένη βάση δεδομένων και τη συνάρτηση aggregate(). Η αθροιστική συνάρτηση ξεκινά με τη χρήση του όρου $group του MongoDB που χρησιμοποιείται ειδικά εδώ για την εμφάνιση των δεδομένων σε μια ομάδα που αφορά το πεδίο 'Title' της βάσης δεδομένων 'test' όπου το πεδίο 'Title' λαμβάνεται ως μοναδικό κλειδί .

Ταυτόχρονα, το πεδίο τιμής αρχικοποιείται ξεχωριστά, το οποίο παίρνει μόνο την εγγραφή ελάχιστης τιμής από το σύνολο των 8 ίδιων εγγραφών μέσω του τελεστή '$min' που εφαρμόζεται σε αυτό. Η έξοδος αυτής της εκτέλεσης ερωτήματος εμφανίζει την εμφάνιση 5 εγγραφών με μια μικρή ενημέρωση στην ενότητα τιμών. Μπορείτε να δείτε ότι δεν εμφανίζονται επαναλαμβανόμενες εγγραφές. Εδώ εμφανίζονται ορισμένες μοναδικές και μικρότερες εγγραφές αξίας.

δοκιμή > δβ.παραγγελία.συγκεντρωτικό ( [ { $ομάδα : { _ταυτότητα: ' $Title ' , τιμή: { $min : ' $SalePrice ' } } } ] )

συμπέρασμα

Αυτός ο οδηγός είναι μια συλλογή από εικονογραφήσεις MongoDB για την εμφάνιση ενός απλού δυνατού τρόπου χρήσης του τελεστή '$min'. Η εισαγωγική παράγραφος χρησιμοποιείται για να συζητηθεί ο σκοπός της χρήσης του στο MongoDB. Το πρώτο μέρος αυτού του άρθρου περιγράφει πώς λειτουργεί ο τελεστής '$min' και δεν λειτουργεί για μία μόνο εγγραφή σε μια βάση δεδομένων, δηλαδή για την ενημέρωση ή την εισαγωγή μιας εγγραφής ως ελάχιστη τιμή. Επίσης, τα τελευταία παραδείγματα δείχνουν τη χρήση του για την ομαδοποίηση της εγγραφής συλλογής ως μοναδική σε όλη τη βάση δεδομένων.