MongoDB OR Operator

Mongodb Or Operator



Έχουμε διαφορετικούς τελεστές λογικών ερωτημάτων που είναι διαθέσιμοι στο MongoDB, και ένας από αυτούς είναι ο τελεστής $or. Ο τελεστής MongoDB $or χρησιμοποιείται για την υλοποίηση μιας λειτουργίας λογικής OR σε έναν πίνακα που περιέχει δύο ή περισσότερες εκφράσεις και για την ανάκτηση μόνο εκείνων των εγγράφων που ταιριάζουν με οποιαδήποτε από τις καθορισμένες εκφράσεις του πίνακα. Ο τελεστής $or χρησιμοποιείται για την εύρεση πολλαπλών δηλώσεων σε ένα μόνο ερώτημα με ένα μόνο κριτήριο εγγράφου που ταιριάζει. Ο τελεστής $ή διευκολύνει τον συνδυασμό πολλών κλειδιών και τιμών.

Πώς να χρησιμοποιήσετε το OR Operator στο MongoDB

Ο τελεστής OR στο MongoDB αντιπροσωπεύεται σε μορφή '$or'. Το '$or' χρησιμοποιείται για να περικλείσει τις πολλαπλές εκφράσεις στις αγκύλες στις οποίες εκτελείται η λειτουργία λογικής OR. Χρησιμοποιούμε τον τελεστή $or στη συλλογή MongoDB. Δημιουργούμε τη συλλογή MongoDB που έχει τον τίτλο «Ασθενείς». Η συλλογή 'Ασθενείς' εισάγεται με τα πολλαπλά έγγραφα στα οποία εκτελούμε τον τελεστή $ή. Τα ακόλουθα έγγραφα εισάγονται στο MongoDB με την επίκληση της μεθόδου insertMany():

db.Patients.insertΠολλοί ( [
{
'Ονομα' : 'Τζένιφερ' ,
'Επίθετο' : 'Ιησούς του ναυή' ,
'Ηλικία' : 44 ,
'Τηλεφωνικό νούμερο' : 43400517 ,
'Ραντεβού' : 'Οδοντίατρος' ,
'Ταρίφα' : 2000 ,
'Δοκιμή' : [ 'Ακτινογραφία' , 'Αίμα' , 'Pulpal' ]
} ,
{
'Ονομα' : 'Θωμάς' ,
'Επίθετο' : 'Στίβεν' ,
'Ηλικία' : 74 ,
'Τηλεφωνικό νούμερο' : 39034694 ,
'Ημερομηνία ραντεβού' : 'Χειρουργός' ,
'Ταρίφα' : 6000 ,
'Δοκιμή' : [ 'Αιρετός' , 'PPT' ]
} ,
{
'Ονομα' : 'Κάρολος' ,
'Επίθετο' : 'Δανιήλ' ,
'Ηλικία' : 35 ,
'Τηλεφωνικό νούμερο' : 65712165 ,
'Ραντεβού' : «Καρδιολόγος» ,
'Ταρίφα' : 2000 ,
'Δοκιμή' : [ 'CT' , 'MRI' ]
} ,
{
'Ονομα' : 'Μισέλ' ,
'Επίθετο' : 'Παύλος' ,
'Ηλικία' : 51 ,
'Τηλεφωνικό νούμερο' : 54399288 ,
'Ραντεβού' : 'Δερματολόγος' ,
'Ταρίφα' : 8000 ,
'Δοκιμή' : [ 'Βιοψίες δέρματος' , 'Ξύλο φως' , 'Ξύσιμο δέρματος' ]
} ,

{
'Ονομα' : 'Ανδρέας' ,
'Επίθετο' : 'Καθίκι' ,
'Ηλικία' : 69 ,
'Τηλεφωνικό νούμερο' : 6108100 ,
'Ραντεβού' : «Καρδιολόγος» ,
'Ταρίφα' : 7000 ,
'Δοκιμή' : [ 'ΗΚΓ' , 'Γλυκόζη αίματος' , 'Υπέρηχος' ]
}
] )

Η έξοδος των εγγράφων που είχαν εισαχθεί προηγουμένως αναγνωρίζει το 'true' και παρέχει τις τιμές 'insertedIds' για κάθε έγγραφο.









Παράδειγμα 1: MongoDB $OR Operator για αντιστοίχιση των εγγράφων

Το βασικό ερώτημα του τελεστή $or MongoDB υλοποιείται εδώ, το οποίο δείχνει τη λειτουργία αυτού του τελεστή στο MongoDB. Εδώ, ορίζουμε ένα ερώτημα με τη μέθοδο find(). Η μέθοδος find() προσδιορίζεται περαιτέρω με τον τελεστή $or. Ο τελεστής $ή λαμβάνει δύο πεδία, 'Appointment' και 'Charges', στα οποία εκχωρούνται οι τιμές. Ο τελεστής $ή αντιστοιχεί στην τιμή του πεδίου και ανακτά μόνο εκείνα τα έγγραφα των οποίων οι τιμές αντιστοιχίζονται με τις τιμές του πεδίου. Η δομή ερωτήματος του τελεστή $or παρέχεται ως εξής:



δβ.Ασθενείς.βρίσκω ( { : [ { Ραντεβού: 'Δερματολόγος' } ,
{ Ταρίφα: 7000 } ] } ) .αρκετά ( )

Παραλαμβάνουμε τα έγγραφα των οποίων το 'Ραντεβού' είναι με τον 'Δερματολόγο' και των οποίων οι 'Χρεώσεις' είναι '7000'. Ο τελεστής $ή βρίσκει αληθινά αποτελέσματα και από τις δύο τιμές πεδίων και επιστρέφει τα αντιστοιχισμένα έγγραφα στην έξοδο.





Παράδειγμα 2: Χειριστής MongoDB $OR για αντιστοίχιση με τα ανύπαρκτα έγγραφα

Στο προηγούμενο ερώτημα του τελεστή $or, λάβαμε τα αντιστοιχισμένα έγγραφα. Τώρα, ανακτούμε το ανύπαρκτο έγγραφο από τη συλλογή «Ασθενής». Το ακόλουθο ερώτημα $ή χειριστή λαμβάνει το έγγραφο του οποίου το 'FirstName' είναι 'Charles' και το 'Appointment' είναι με τον 'Physician'. Ο τελεστής $ή αντιστοιχίζει αυτές τις τιμές πεδίων στη συλλογή 'Ασθενείς' και δημιουργεί τα αποτελέσματα μετά την αντιστοίχιση.



δβ.Ασθενείς.βρίσκω ( { : [ { 'Ονομα' : 'Κάρολος' } , { 'Ραντεβού' : 'Γιατρός' } ] } ) .αρκετά ( )

Ο τελεστής $ή έχει ένα αληθές αποτέλεσμα και ο άλλος έχει ένα ψευδές αποτέλεσμα. Καθώς καθορίζουμε το 'Ραντεβού' με την τιμή 'Ιατρός' που δεν ταιριάζει με κανένα από τα έγγραφα της συλλογής 'Ασθενής'. Γι' αυτό, ο τελεστής $ή επιστρέφει μόνο το έγγραφο του αντιστοιχισμένου πεδίου που είναι 'Ασθενής' ως έξοδος.

Παράδειγμα 3: MongoDB $OR Operator με πολλαπλά ορίσματα

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

δβ.Ασθενείς.βρίσκω ( { 'Ραντεβού' : «Καρδιολόγος» , : [ { 'Ηλικία' : είκοσι } , { 'Ηλικία' : 35 } , { 'Ηλικία' : 69 } ] } )

Εκεί, έχουμε δύο ταιριαστά αποτελέσματα που λαμβάνονται από τον τελεστή $or. Οι τιμές 'Age' που είναι '35' και '69' συγκρίνονται με τα έγγραφα 'Patients' που λαμβάνονται από τον χειριστή $ή και εμφανίζονται στο κέλυφος.

Παράδειγμα 4: MongoDB $OR Operator with Aggregation

Η συγκεντρωτική μέθοδος στο MongoDB συνδυάζει τις εγγραφές σε μια συλλογή. Επομένως, μπορούν να χρησιμοποιηθούν για διαφορετικές λειτουργίες. Εκτελούμε τον τελεστή $ή στη μέθοδο συγκέντρωσης που αξιολογεί μία ή περισσότερες εκφράσεις και επιστρέφει true εάν κάποια από αυτές αξιολογηθεί ως true. Διαφορετικά, η δήλωση θεωρείται ψευδής.

Ας έχουμε το ερώτημα τελεστή $or aggregation όπου πρώτα καλούμε τη μέθοδο aggregate() η οποία στη συνέχεια αναπτύσσει το $match και το $project που καθορίζεται με την τιμή _id που θα αντιστοιχιστεί από το έγγραφο. Στη συνέχεια, ορίζουμε το πεδίο «Ηλικία» με την τιμή «1» γιατί θέλουμε αυτό το πεδίο να δημιουργείται μόνο από όλα τα έγγραφα. Μετά από αυτό, ορίζουμε το χαρακτηριστικό 'Αποτελέσματα' που έχει τη λειτουργία $or. Ο τελεστής $ή παίρνει την υπό όρους δήλωση $gt. Η έκφραση '$gt:['$Age', 69] δίνει την ηλικία της οποίας η τιμή είναι μεγαλύτερη από '69'. Τα αποτελέσματα για αυτήν την έκφραση μεταβιβάζονται στον τελεστή $or και ο τελεστής $or επιστρέφει το έγγραφο που πληροί την καθορισμένη συνθήκη.

δβ.Ασθενείς.συγκεντρωτικό (
[
{ $ταιριάζουν : { _id: ObjectId ( '6391c61a4c91e007fb4f0228' ) } } ,
{ $έργο : {
_id: ObjectId ( '6391c61a4c91e007fb4f0227' ) ,
Ηλικία: ένας ,
Αποτέλεσμα: { : [
{ $gt : [ ' $Age ' , 69 ] }
] }
}
}
]
)

Η 'Ηλικία' που είναι μεγαλύτερη από '69' είναι '74' που εμφανίζεται στο κέλυφος εξόδου μαζί με τα 'Αποτελέσματα' που έχει την 'αληθινή' τιμή.

Παράδειγμα 5: Ο χειριστής MongoDB $OR καλεί τις συνθήκες

Ο τελεστής $ή του MongoDB είναι ένας λογικός τελεστής. Μπορούμε να χρησιμοποιήσουμε αυτόν τον λογικό τελεστή με τον τελεστή υπό όρους. Ο τελεστής $ή επιστρέφει τα αποτελέσματα όταν πληρούνται οι προϋποθέσεις. Επιπλέον, μπορούμε να καλέσουμε περισσότερες από μία συνθήκες στον τελεστή $or από τις οποίες πρέπει να είναι αληθής. Εδώ, έχουμε ένα ερώτημα του $or operator που καθορίζεται με δύο διαφορετικές συνθήκες. Η πρώτη συνθήκη είναι '{Charges:{$lt: 6000}}' που επιστρέφει το έγγραφο που είναι μικρότερο από την τιμή 'Charges' των '6000'. Η συνθήκη {Charges:'$gt: 7000'} λαμβάνει το έγγραφο που είναι μεγαλύτερο από την τιμή 'Charges' των '7000'.

Ο χειριστής $or δίνει το αντίστοιχο έγγραφο όταν πληρούνται αυτές οι προϋποθέσεις. Στη συνέχεια, καθορίζουμε τα ονόματα των πεδίων που εμφανίζονται μόνο όταν ο τελεστής $ή δίνει το αντίστοιχο έγγραφο.

δβ.Ασθενείς.βρίσκω ( {
: [
{ Ταρίφα: { $lt : 6000 } } ,
{ Ταρίφα: { $gt : 7000 } }
]
} , {
Ονομα: ένας ,
Ταρίφα: ένας
} )

Η έξοδος εμφανίζει μόνο τα πεδία «FirstName» και «Charges» για τα αντίστοιχα έγγραφα.

Παράδειγμα 6: MongoDB $OR Operator χωρίς όρισμα

Όλα τα ερωτήματα που υλοποιήθηκαν με τον τελεστή $ή περνούν με την τιμή ορίσματος. Τώρα, ορίζουμε το ερώτημα $or τελεστή που δεν εισάγει κανένα όρισμα. Όταν εκτελείται το κενό όρισμα $ή το ερώτημα τελεστή, αξιολογεί τα ψευδή αποτελέσματα. Δίνουμε ένα ερώτημα όπου η πράξη $or μεταβιβάζεται με την κενή έκφραση.

δβ.Ασθενείς.συγκεντρωτικό (
[
{ $ταιριάζουν : { _ταυτότητα: { $σε : [ ObjectId ( '6391c61a4c91e007fb4f0228' ) ] } } } ,
{ $έργο : {
_id: ObjectId ( '6391c61a4c91e007fb4f0227' ) ,
Αποτέλεσμα: { : [ ] } }
}
]
)

Ως αποτέλεσμα του τελεστή $or παρέχεται με ένα κενό όρισμα, τα αποτελέσματα δηλώνουν μια ψευδή τιμή.

Παράδειγμα 7: Ο χειριστής MongoDB $OR ταιριάζει με τις τιμές του πίνακα

Εισάγουμε τον πίνακα 'Δοκιμή' στα έγγραφα που έχουν διαφορετικές τιμές. Χρησιμοποιούμε αυτόν τον πίνακα για τον τελεστή $or για να εξετάσουμε τα αποτελέσματα. Ο τελεστής $or στο ακόλουθο ερώτημα καλείται μέσα στη μέθοδο find(). Ο τελεστής $ή παίρνει τον πίνακα 'Test' ως έκφραση. Ο πίνακας 'Test' χρησιμοποιεί τον τελεστή $in για να προσδιορίσει τα έγγραφα των οποίων οι τιμές πεδίου αντιστοιχούν στις τιμές 'MRI' και 'CT' στον πίνακα.

δβ.Ασθενείς.βρίσκω ( { : [ { Δοκιμή: { $σε : [ 'MRI' , 'CT' ] } } ] } ) .αρκετά ( )

Ένα έγγραφο εμφανίζεται στο κέλυφος όταν εκτελείται ο τελεστής $or query που δείχνει ότι το ανακτηθέν έγγραφο περιέχει τις καθορισμένες τιμές πίνακα.

συμπέρασμα

Αυτό το άρθρο MongoDB επεξηγεί τη χρήση ενός ερωτήματος $or τελεστή MongoDB για την εκτέλεση των λογικών λειτουργιών OR σε έναν πίνακα που περιλαμβάνει δύο ή περισσότερες εκφράσεις, καθώς και για την ανάκτηση των εγγράφων που ταιριάζουν με τουλάχιστον μία από τις εκφράσεις. Ο τελεστής $ή ερωτάται στο κέλυφος MongoDB για να εκτελέσει διαφορετικές λειτουργίες. Ο τελεστής $or χρησιμοποιείται σε τελεστές υπό όρους ως έκφραση και επιστρέφει τα έγγραφα με βάση τις εντολές υπό όρους.