Συναρτήσεις Count() & Remove() σε MongoDB με Παράδειγμα
⚡ Έξυπνη Σύνοψη
Συναρτήσεις Count() και Remove() σε MongoDB Αναφέρετε πόσα έγγραφα περιέχει μια συλλογή και διαγράψτε έγγραφα από αυτήν. Η μέθοδος count() επιστρέφει το σύνολο των εγγράφων, ενώ η μέθοδος remove() διαγράφει όλα τα έγγραφα ή μόνο εκείνα που ταιριάζουν με μια καθορισμένη συνθήκη.

MongoDB Συνάρτηση Count().
Η έννοια της συνάθροισης είναι να πραγματοποιηθεί ένας υπολογισμός για τα αποτελέσματα που επιστρέφονται σε ένα ερώτημα. Για παράδειγμα, ας υποθέσουμε ότι θέλετε να μάθετε ποιος είναι ο αριθμός των εγγράφων σε μια συλλογή σύμφωνα με το ερώτημα που ενεργοποιήθηκε, τότε MongoDB παρέχει τη συνάρτηση count().
Παράδειγμα MongoDB Συνάρτηση Count().
Ας δούμε ένα παράδειγμα αυτού.
db.Employee.count()
Code Επεξήγηση:
- Ο παραπάνω κώδικας εκτελεί τη συνάρτηση count.
Εάν η εντολή εκτελεστεί με επιτυχία, θα εμφανιστεί η ακόλουθη έξοδος
Παραγωγή:
Η έξοδος δείχνει ξεκάθαρα ότι υπάρχουν 4 έγγραφα στη συλλογή.
MongoDB Μέτρηση με συνθήκη ερωτήματος
Η μέθοδος count() είναι ιδιαίτερα χρήσιμη όταν διαβιβάζετε μια συνθήκη ερωτήματος, επομένως μετρά μόνο τα έγγραφα που ταιριάζουν αντί για ολόκληρη τη συλλογή. Αυτό είναι χρήσιμο για αναφορές, όπως πόσοι υπάλληλοι ανήκουν σε ένα τμήμα ή πόσες παραγγελίες είναι ακόμα ανοιχτές.
Το ακόλουθο παράδειγμα καταμετρά τους υπαλλήλους των οποίων το Employeeid είναι μεγαλύτερο από 2:
db.Employee.count({Employeeid:{$gt:2}})
Να τι συμβαίνει:
- Το αντικείμενο ερωτήματος {Employeeid:{$gt:2}} λειτουργεί ως φίλτρο, χρησιμοποιώντας τον τελεστή $gt (μεγαλύτερο από).
- Η συνάρτηση count() επιστρέφει μόνο τον αριθμό των εγγράφων που ικανοποιούν το φίλτρο.
- Η υπόλοιπη συλλογή αγνοείται στο σύνολο.
Στο τρέχον MongoDB εκδόσεις, η countDocuments() είναι η συνιστώμενη μέθοδος για μια καταμέτρηση υπό όρους, επειδή επιστρέφει πάντα ένα ακριβές αποτέλεσμα. Το ίδιο ερώτημα λειτουργεί και με αυτήν:
db.Employee.countDocuments({Employeeid:{$gt:2}})
Και οι δύο εντολές επιστρέφουν έναν μόνο αριθμό, τον οποίο μπορείτε να αποθηκεύσετε σε μια μεταβλητή ή να εμφανίσετε απευθείας. Η προσθήκη ενός αντίστοιχου δείκτη στο πεδίο ερωτήματος διατηρεί τις μετρήσεις υπό όρους γρήγορες σε μεγάλες συλλογές.
Εκτέλεση τροποποιήσεων
Οι άλλες δύο κατηγορίες λειτουργιών σε MongoDB είναι οι δηλώσεις ενημέρωσης και κατάργησης.
Οι λειτουργίες ενημέρωσης επιτρέπουν σε κάποιον να τροποποιήσει υπάρχοντα δεδομένα και οι λειτουργίες αφαίρεσης επιτρέπουν τη διαγραφή δεδομένων από μια συλλογή.
Λειτουργία Remove() in MongoDB
In MongoDB, db.collection.remove() μέθοδος χρησιμοποιείται για την αφαίρεση εγγράφων από μια συλλογή. Είτε όλα τα έγγραφα μπορούν να αφαιρεθούν από μια συλλογή είτε μόνο αυτά που ταιριάζουν σε μια συγκεκριμένη συνθήκη.
Εάν εκδώσετε απλώς την εντολή αφαίρεσης, όλα τα έγγραφα θα αφαιρεθούν από τη συλλογή.
Παράδειγμα MongoDB Λειτουργία Remove().
Το ακόλουθο παράδειγμα κώδικα δείχνει πώς να αφαιρέσετε ένα συγκεκριμένο έγγραφο από τη συλλογή.
db.Employee.remove({Employeeid:22})
Code Επεξήγηση:
- Ο παραπάνω κωδικός χρησιμοποιεί τη συνάρτηση αφαίρεσης και καθορίζει τα κριτήρια που σε αυτήν την περίπτωση είναι να αφαιρέσετε τα έγγραφα που έχουν το Employee id ως 22.
Εάν η εντολή εκτελεστεί με επιτυχία, θα εμφανιστεί η ακόλουθη έξοδος
Παραγωγή:
Το αποτέλεσμα θα δείξει ότι 1 έγγραφο αφαιρέθηκε.
Αφαίρεση όλων των εγγράφων έναντι ενός μόνο εγγράφου
Η μέθοδος remove() μπορεί να διαγράψει κάθε έγγραφο που ταιριάζει ή μόνο ένα, ανάλογα με τα ορίσματα που περνάτε. Η κατανόηση της διαφοράς αποτρέπει την τυχαία απώλεια δεδομένων.
Για να αφαιρέσετε κάθε έγγραφο σε μια συλλογή, περάστε μια κενή συνθήκη:
db.Employee.remove({})
Αυτό διαγράφει όλα τα έγγραφα, αλλά διατηρεί την ίδια τη συλλογή. Για να καταργήσετε μόνο έγγραφα που ταιριάζουν με μια συνθήκη, διαβιβάστε ένα αντικείμενο ερωτήματος, όπως φαίνεται νωρίτερα με το {Employeeeid:22}. Εάν ταιριάζουν πολλά έγγραφα και θέλετε να διαγράψετε μόνο το πρώτο, προσθέστε την επιλογή justOne:
db.Employee.remove({EmployeeName:"Smith"}, {justOne:true})
Οι βασικές διαφορές είναι:
- Η συνάρτηση remove({}) διαγράφει όλα τα έγγραφα στη συλλογή.
- Η συνάρτηση remove({condition}) διαγράφει κάθε έγγραφο που ταιριάζει με τη συνθήκη.
- Η συνάρτηση remove({condition}, {justOne:true}) διαγράφει μόνο το πρώτο έγγραφο που ταιριάζει.
Πάντα να ελέγχετε ξανά τη συνθήκη πριν εκτελέσετε μια εντολή αφαίρεσης, επειδή ένα κενό ή λάθος φίλτρο μπορεί να διαγράψει ολόκληρη τη συλλογή. Στη σύγχρονη MongoDBΟι συναρτήσεις , deleteOne() και deleteMany() αντικαθιστούν αυτά τα μοτίβα και κάνουν την πρόθεση πιο σαφή.
Σύγχρονες εναλλακτικές λύσεις για την καταμέτρηση() και την αφαίρεση()
Τόσο η count() όσο και η remove() είναι παλαιότερες μέθοδοι. Νεότερες. MongoDB Τα προγράμματα οδήγησης τα επισημαίνουν ως παρωχημένα και παρέχουν σαφέστερες αντικαταστάσεις. Ο παρακάτω πίνακας αντιστοιχίζει κάθε παλιά μέθοδο με το σύγχρονο ισοδύναμό της:
| Παλαιότερη μέθοδος | Σύγχρονη αντικατάσταση | Σκοπός |
|---|---|---|
| μετρώ() | countDocuments() | Επιστρέφει έναν ακριβή αριθμό αντίστοιχων εγγράφων |
| μετρώ() | εκτιμώμενος αριθμός εγγράφων() | Επιστρέφει μια γρήγορη, κατά προσέγγιση καταμέτρηση όλων των εγγράφων |
| αφαιρώ() | deleteOne() | Διαγράφει το πρώτο έγγραφο που ταιριάζει με το φίλτρο |
| αφαιρώ() | διαγραφήΠολλά() | Διαγράφει κάθε έγγραφο που ταιριάζει με το φίλτρο |
Για νέες εφαρμογές, προτιμήστε αυτές τις σύγχρονες μεθόδους. Διαχωρίζουν την καταμέτρηση από την εκτίμηση και τη διαγραφή ενός εγγράφου από τη διαγραφή πολλών, γεγονός που καθιστά τα ερωτήματα ασφαλέστερα και πιο εύκολα στην ανάγνωση. Οι παλαιότερες μέθοδοι count() και remove() εξακολουθούν να λειτουργούν για παλαιότερα εκπαιδευτικά προγράμματα και σενάρια.


