MongoDB Έγγραφο ερωτήματος: db.collection.find() με Παράδειγμα
⚡ Έξυπνη Σύνοψη
MongoDB Οι λειτουργίες ερωτήματος εγγράφου ανακτούν εγγραφές από μια συλλογή χρησιμοποιώντας τη συνάρτηση db.collection.find(). Η μέθοδος επιστρέφει όλα τα έγγραφα από προεπιλογή, δέχεται κριτήρια φιλτραρίσματος όπως αντιστοιχίσεις πεδίων και τον τελεστή $gt, και μορφοποιεί τα αποτελέσματα με την εντολή forEach(printjson).

Η μέθοδος ανάκτησης ή λήψης δεδομένων από α MongoDB βάση δεδομένων πραγματοποιείται με τη χρήση MongoDB ερωτήματα. Κατά την εκτέλεση μιας λειτουργίας ερωτήματος, μπορεί κανείς επίσης να χρησιμοποιήσει κριτήρια ή συνθήκες που μπορούν να χρησιμοποιηθούν για την ανάκτηση συγκεκριμένων δεδομένων από τη βάση δεδομένων.
MongoDB παρέχει μια συνάρτηση που ονομάζεται db.collection.find() που χρησιμοποιείται για την ανάκτηση εγγράφων από α MongoDB βάση δεδομένων.
Κατά τη διάρκεια αυτού MongoDB μάθημα ερωτήματος, θα δείτε πώς αυτή η συνάρτηση χρησιμοποιείται με διάφορους τρόπους για να επιτευχθεί ο σκοπός της ανάκτησης εγγράφων.
Τι είναι η db.collection.find() στο MongoDB?
Η μέθοδος db.collection.find() είναι ο κύριος τρόπος για να διαβάσετε έγγραφα από ένα MongoDB συλλογή. Όταν την καλείτε χωρίς κανένα όρισμα, επιστρέφει κάθε έγγραφο στη συλλογή. Όταν διαβιβάζετε ένα αντικείμενο ερωτήματος, επιστρέφει μόνο τα έγγραφα που ταιριάζουν με τα δεδομένα κριτήρια, ώστε να μπορείτε να ανακτήσετε ακριβώς τα δεδομένα που χρειάζεστε.
Η μέθοδος επιστρέφει έναν κέρσορα, ο οποίος είναι ένας δείκτης στο σύνολο αποτελεσμάτων και όχι στα ίδια τα έγγραφα. Συνήθως κάνετε επανάληψη μέσω του κέρσορα για να εμφανίσετε τα αποτελέσματα, συχνά με την forEach(printjson) για να εμφανίσετε κάθε έγγραφο σε αναγνώσιμο JSON. Εάν χρειάζεστε μόνο μία εγγραφή, MongoDB παρέχει επίσης findOne(), η οποία επιστρέφει το πρώτο έγγραφο που ταιριάζει αντί για δρομέα. Μαζί, οι find() και findOne() καλύπτουν τις περισσότερες λειτουργίες ανάγνωσης σε ένα MongoDB βάση δεδομένων, από την ανάκτηση ολόκληρων συλλογών έως το φιλτράρισμα με βάση συγκεκριμένες τιμές πεδίων.
MongoDB Βασικό ερώτημα Operaσεις
Το βασικό MongoDB Οι τελεστές ερωτημάτων καλύπτουν απλές λειτουργίες, όπως η λήψη όλων των εγγράφων σε α MongoDB συλλογή. Ας δούμε ένα db.collection.βρείτε παράδειγμα για το πώς μπορούμε να το πετύχουμε αυτό.
Όλος ο κώδικας μας θα εκτελεστεί στο MongoDB JavaΓραφή κέλυφος εντολών. Σκεφτείτε ότι έχουμε μια συλλογή με το όνομα 'Εργαζόμενος' MongoDB βάση δεδομένων και εκτελούμε την παρακάτω εντολή.

Code Επεξήγηση:
- Υπάλληλος είναι το όνομα συλλογής στο MongoDB βάσεις δεδομένων
- The MongoDB Η αναζήτηση αναζήτησης είναι μια ενσωματωμένη συνάρτηση που χρησιμοποιείται για την ανάκτηση των εγγράφων της συλλογής.
Εάν η εντολή εκτελεστεί με επιτυχία, θα εμφανιστεί η ακόλουθη έξοδος για το MongoDB βρείτε παράδειγμα
Παραγωγή:
Η έξοδος εμφανίζει όλα τα έγγραφα που υπάρχουν στη συλλογή.
Μπορούμε επίσης να προσθέσουμε κριτήρια στα ερωτήματά μας, ώστε να μπορούμε να ανακτήσουμε έγγραφα βάσει συγκεκριμένων συνθηκών.
MongoDB Παράδειγμα ερωτήματος – 1
Ας δούμε μερικά MongoDB ρωτήστε παραδείγματα για το πώς μπορούμε να το πετύχουμε αυτό.
db.Employee.find({EmployeeName : "Smith"}).forEach(printjson);
Code Επεξήγηση:
- Εδώ θέλουμε να βρούμε έναν Υπάλληλο του οποίου το όνομα είναι "Smith" στη συλλογή, επομένως εισάγουμε τα κριτήρια φίλτρου ως EmployeeName: "Smith"
Εάν η εντολή εκτελεστεί με επιτυχία, θα εμφανιστεί η ακόλουθη έξοδος
Παραγωγή:
Η έξοδος δείχνει ότι επιστρέφεται μόνο το έγγραφο που περιέχει το "Smith" ως Όνομα Υπαλλήλου.
MongoDB Παράδειγμα ερωτήματος – 2
Τώρα σε αυτό MongoDB μάθημα ερωτημάτων, ας ρίξουμε μια ματιά σε ένα άλλο παράδειγμα κώδικα που χρησιμοποιεί τα κριτήρια που είναι μεγαλύτερα από την αναζήτηση. Όταν συμπεριλαμβάνεται αυτό το κριτήριο, πραγματοποιεί αναζήτηση σε εκείνα τα έγγραφα όπου η τιμή του πεδίου είναι μεγαλύτερη από την καθορισμένη τιμή.
db.Employee.find({Employeeid : {$gt:2}}).forEach(printjson);
Code Επεξήγηση:
- Εδώ θέλουμε να βρούμε για όλους τους Υπαλλήλους των οποίων το αναγνωριστικό είναι μεγαλύτερο από 2. Ο $gt ονομάζεται τελεστής επιλογής ερωτήματος και αυτό που σημαίνει απλώς είναι να χρησιμοποιήσουμε την έκφραση μεγαλύτερο από.
Εάν η MongoDB Η εντολή Select fields εκτελείται με επιτυχία, θα εμφανιστεί η ακόλουθη έξοδος
Παραγωγή:
Όλα τα έγγραφα στα οποία το αναγνωριστικό υπαλλήλου είναι μεγαλύτερο από 2 επιστρέφονται.
MongoDB Απορία Operaκορμοί
MongoDB Φιλτράρει έγγραφα χρησιμοποιώντας τελεστές επιλογής ερωτήματος εντός των κριτηρίων find(). Αυτοί οι τελεστές σάς επιτρέπουν να αντιστοιχίζετε εύρη, λίστες και αρνήσεις αντί μόνο ακριβείς τιμές. Ο παρακάτω πίνακας παραθέτει τους πιο συνηθισμένους τελεστές:
| OperaTor | Νόημα | Παράδειγμα |
|---|---|---|
| $gt | Μεγαλύτερος από | {Αριθμός Υπαλλήλου: {$gt: 2}} |
| $lt | Less από | {Αριθμός Υπαλλήλου: {$lt: 5}} |
| $gte | Μεγαλύτερο ή ίσο με | {ηλικία: {$gte: 18}} |
| $lte | Less από ή ίσο με | {ηλικία: {$lte: 60}} |
| $ne | Οχι ίσο με | {κατάσταση: {$ne: “ενεργό”}} |
| $ σε | Αντιστοιχεί σε οποιαδήποτε τιμή σε μια λίστα | {τμήμα: {$σε: [“HR”,”IT”]}} |
Μπορείτε επίσης να συνδυάσετε συνθήκες με $και και $ή για να δημιουργήσετε πιο ακριβή ερωτήματα. Η επιλογή του σωστού τελεστή διατηρεί τα ερωτήματα αποτελεσματικά και επιστρέφει μόνο τα έγγραφα που χρειάζεται η εφαρμογή σας.
Πώς να χρησιμοποιήσετε την προβολή με find()
Από προεπιλογή, η συνάρτηση find() επιστρέφει ολόκληρο το έγγραφο, συμπεριλαμβανομένων κάθε πεδίου. Συχνά χρειάζεστε μόνο λίγα πεδία, όπως ένα όνομα ή ένα αναγνωριστικό. MongoDB σας επιτρέπει να το ελέγχετε αυτό με μια προβολή, η οποία είναι ένα δεύτερο όρισμα που μεταβιβάζεται στη συνάρτηση find() και παραθέτει τα πεδία που θα συμπεριληφθούν ή θα εξαιρεθούν.
Για να συμπεριλάβετε μόνο συγκεκριμένα πεδία, ορίστε τα σε 1 στο αντικείμενο προβολής. Το ακόλουθο ερώτημα επιστρέφει μόνο το πεδίο EmployeeName για κάθε έγγραφο:
db.Employee.find({}, {EmployeeName: 1}).forEach(printjson);
MongoDB επιστρέφει πάντα το πεδίο _id εκτός αν το εξαιρέσετε ρητά. Για να το αποκρύψετε, ορίστε το _id σε 0:
db.Employee.find({}, {EmployeeName: 1, _id: 0}).forEach(printjson);
Μπορείτε επίσης να εξαιρέσετε πεδία αντί να τα συμπεριλάβετε, ορίζοντας τα σε 0. Για παράδειγμα, το παρακάτω ερώτημα επιστρέφει κάθε πεδίο εκτός από το EmployeeID:
db.Employee.find({}, {Employeeid: 0}).forEach(printjson);
Λάβετε υπόψη ότι δεν μπορείτε να συνδυάσετε την συμπερίληψη και την εξαίρεση στην ίδια προβολή, εκτός από το πεδίο _id. Η χρήση της προβολής μειώνει την ποσότητα δεδομένων που μεταφέρονται από τον διακομιστή, γεγονός που καθιστά τα ερωτήματα πιο γρήγορα και τις απαντήσεις πιο ευανάγνωστες, ειδικά σε μεγάλα έγγραφα.



