MongoDB में OR ऑपरेटर का उपयोग कैसे करें
मोंगोडीबी में ओआर ऑपरेटर को '$ या' प्रारूप में दर्शाया गया है। '$or' का उपयोग वर्गाकार कोष्ठकों में कई भावों को संलग्न करने के लिए किया जाता है, जिस पर तार्किक OR ऑपरेशन किया जाता है। हम MongoDB संग्रह पर $or ऑपरेटर का उपयोग करते हैं। हम MongoDB संग्रह बनाते हैं जिसका शीर्षक 'मरीज' है। 'मरीजों' संग्रह को कई दस्तावेजों के साथ डाला जाता है, जिन पर हम $or ऑपरेटर का प्रदर्शन करते हैं। इन्सर्टमैनी () विधि को लागू करके MongoDB में निम्नलिखित दस्तावेज़ सम्मिलित किए गए हैं:
db.Patients.insertMany ( [{
'पहला नाम' : 'जेनिफर' ,
'उपनाम' : 'यहोशू' ,
'उम्र' : 44 ,
'फ़ोन नंबर' : 43400517 ,
'नियुक्ति' : 'दाँतों का डॉक्टर' ,
'शुल्क' : 2000 ,
'परीक्षा' : [ 'एक्स-रे' , 'खून' , 'पुलपाल' ]
} ,
{
'पहला नाम' : 'थॉमस' ,
'उपनाम' : 'स्टीवन' ,
'उम्र' : 74 ,
'फ़ोन नंबर' : 39034694 ,
'मिलने की तारीख' : 'शल्य चिकित्सक' ,
'शुल्क' : 6000 ,
'परीक्षा' : [ 'वैकल्पिक' , 'पीपीटी' ]
} ,
{
'पहला नाम' : 'चार्ल्स' ,
'उपनाम' : 'डैनियल' ,
'उम्र' : 35 ,
'फ़ोन नंबर' : 65712165 ,
'नियुक्ति' : 'कार्डियोलॉजी चिकित्सक' ,
'शुल्क' : 2000 ,
'परीक्षा' : [ 'सीटी' , 'एमआरआई' ]
} ,
{
'पहला नाम' : 'मिशेल' ,
'उपनाम' : 'पॉल' ,
'उम्र' : 51 ,
'फ़ोन नंबर' : 54399288 ,
'नियुक्ति' : 'त्वचा विशेषज्ञ' ,
'शुल्क' : 8000 ,
'परीक्षा' : [ 'त्वचा बायोप्सी' , 'वुड लाइट' , 'स्किन स्क्रेपिंग' ]
} ,
{
'पहला नाम' : 'एंड्रयू' ,
'उपनाम' : 'जैरी' ,
'उम्र' : 69 ,
'फ़ोन नंबर' : 6108100 ,
'नियुक्ति' : 'कार्डियोलॉजी चिकित्सक' ,
'शुल्क' : 7000 ,
'परीक्षा' : [ 'ईसीजी' , 'रक्त ग्लूकोज' , 'अल्ट्रासाउंड' ]
}
] )
पहले से सम्मिलित दस्तावेज़ों का आउटपुट 'सत्य' स्वीकार करता है और प्रत्येक दस्तावेज़ के लिए 'सम्मिलित आईडी' मान प्रदान करता है।
उदाहरण 1: दस्तावेज़ों का मिलान करने के लिए MongoDB $OR ऑपरेटर
MongoDB $or ऑपरेटर की मूल क्वेरी यहाँ लागू की गई है जो MongoDB में इस ऑपरेटर के कार्य को प्रदर्शित करती है। यहां, हम खोज () विधि के साथ एक क्वेरी को परिभाषित करते हैं। खोज () विधि आगे $ या ऑपरेटर के साथ निर्दिष्ट की गई है। $or ऑपरेटर दो फील्ड लेता है, “Appointment” और “Charges”, जो मूल्यों के साथ असाइन किए गए हैं। $or ऑपरेटर फ़ील्ड मान से मेल खाता है और केवल उन दस्तावेज़ों को पुनर्प्राप्त करता है जिनके मान फ़ील्ड मानों से मेल खाते हैं। $or ऑपरेटर की क्वेरी संरचना निम्नलिखित में प्रदान की गई है:
db.Patients.find ( { $ या : [ { नियुक्ति: 'त्वचा विशेषज्ञ' } ,
{ शुल्क: 7000 } ] } ) ।सुंदर ( )
हम उन दस्तावेजों को लाते हैं जिनकी 'नियुक्ति' 'त्वचा विशेषज्ञ' के पास है और जिनके 'शुल्क' '7000' हैं। $or ऑपरेटर दोनों फ़ील्ड मानों से सही परिणाम पाता है और आउटपुट में मिलान किए गए दस्तावेज़ लौटाता है।
उदाहरण 2: गैर-मौजूद दस्तावेज़ों का मिलान करने के लिए MongoDB $OR ऑपरेटर
$or ऑपरेटर की पिछली क्वेरी में, हमने मेल खाने वाले दस्तावेज़ प्राप्त किए। अब, हम 'रोगी' संग्रह से गैर-मौजूद दस्तावेज़ को पुनः प्राप्त करते हैं। निम्न $or ऑपरेटर क्वेरी उस दस्तावेज़ को लेती है जिसका 'FirstName' 'चार्ल्स' है और 'नियुक्ति' 'चिकित्सक' के पास है। $or ऑपरेटर 'मरीजों' संग्रह के भीतर इन फ़ील्ड मानों से मेल खाता है और मिलान के बाद परिणाम उत्पन्न करता है।
db.Patients.find ( { $ या : [ { 'पहला नाम' : 'चार्ल्स' } , { 'नियुक्ति' : 'चिकित्सक' } ] } ) ।सुंदर ( )
$or ऑपरेटर का एक सही परिणाम है और दूसरे का गलत परिणाम है। जैसा कि हम 'नियुक्ति' को 'चिकित्सक' मान के साथ निर्दिष्ट करते हैं जो 'रोगी' संग्रह में किसी भी दस्तावेज़ से मेल नहीं खाता है। इसलिए, $or ऑपरेटर केवल मेल खाने वाले फ़ील्ड का दस्तावेज़ लौटाता है जो आउटपुट के रूप में 'रोगी' है।
उदाहरण 3: कई तर्कों के साथ MongoDB $OR ऑपरेटर
हमने पिछले $or ऑपरेटर प्रश्नों में दो तर्क प्रदान किए हैं। यहां, हम $or ऑपरेटर एक्सप्रेशन के रूप में दो से अधिक तर्क पास करते हैं। हम उस दस्तावेज़ को पुनः प्राप्त करते हैं जो उसे दिए गए किसी भी 'आयु' फ़ील्ड मान से मेल खाता है। कई तर्कों के लिए $or ऑपरेटर की आवश्यकता समान है कि एक भाव सत्य होना चाहिए। $or ऑपरेटर में कई तर्कों के लिए क्वेरी निम्नानुसार दी गई है:
db.Patients.find ( { 'नियुक्ति' : 'कार्डियोलॉजी चिकित्सक' , $ या : [ { 'उम्र' : बीस } , { 'उम्र' : 35 } , { 'उम्र' : 69 } ] } )वहां, हमारे पास दो मिलान परिणाम हैं जो $or ऑपरेटर से प्राप्त किए गए हैं। 'आयु' मान जो '35' और '69' हैं, उनकी तुलना 'मरीजों' दस्तावेजों से की जाती है जो $or ऑपरेटर द्वारा प्राप्त किए जाते हैं और शेल पर प्रदर्शित होते हैं।
उदाहरण 4: एकत्रीकरण के साथ MongoDB $OR ऑपरेटर
मोंगोडीबी में कुल विधि रिकॉर्ड को संग्रह में जोड़ती है। इसलिए, उनका उपयोग विभिन्न कार्यों के लिए किया जा सकता है। हम एग्रीगेशन मेथड में $or ऑपरेटर परफॉर्म करते हैं जो एक या अधिक एक्सप्रेशन का मूल्यांकन करता है और अगर उनमें से कोई भी सही का मूल्यांकन करता है तो ट्रू रिटर्न करता है। अन्यथा, कथन को असत्य माना जाता है।
चलो $ या एकत्रीकरण ऑपरेटर क्वेरी करते हैं जहां हम पहले कुल () विधि का आह्वान करते हैं जो तब $ मैच और $ प्रोजेक्ट को तैनात करता है जिसे दस्तावेज़ से मिलान करने के लिए _id मान के साथ निर्दिष्ट किया जाता है। फिर, हम 'आयु' फ़ील्ड को '1' के मान के साथ सेट करते हैं क्योंकि हम चाहते हैं कि यह फ़ील्ड सभी दस्तावेज़ों से उत्पन्न हो। उसके बाद, हम “परिणाम” विशेषता को परिभाषित करते हैं जिसमें $or ऑपरेशन होता है। $or ऑपरेटर $gt का सशर्त विवरण लेता है। '$gt:['$Age', 69]' एक्सप्रेशन से वह उम्र मिलती है जिसका मान '69' से अधिक होता है। इस अभिव्यक्ति के परिणाम $or ऑपरेटर को दिए जाते हैं और $or ऑपरेटर उस दस्तावेज़ को लौटाता है जो निर्दिष्ट शर्त को पूरा करता है।
डीबी.मरीज.एग्रीगेट ([
{ $मैच : { _आईडी: ऑब्जेक्टआईडी ( '6391c61a4c91e007fb4f0228' ) } } ,
{ $प्रोजेक्ट : {
_आईडी: ऑब्जेक्टआईडी ( '6391c61a4c91e007fb4f0227' ) ,
उम्र: एक ,
परिणाम: { $ या : [
{ $gt : [ ' $ आयु ' , 69 ] }
] }
}
}
]
)
'आयु' जो '69' से अधिक है '74' है जो 'परिणाम' के साथ आउटपुट शेल में प्रदर्शित होता है जिसमें 'सत्य' मान होता है।
उदाहरण 5: MongoDB $OR ऑपरेटर शर्तों को आमंत्रित करता है
MongoDB का $or ऑपरेटर एक तार्किक ऑपरेटर है। हम इस तार्किक ऑपरेटर का उपयोग सशर्त ऑपरेटर के साथ कर सकते हैं। शर्तों के संतुष्ट होने पर $or ऑपरेटर परिणाम लौटाता है। इसके अलावा, हम $or ऑपरेटर में एक से अधिक शर्तों को लागू कर सकते हैं जिनमें से एक को सच होना चाहिए। यहां, हमारे पास $or ऑपरेटर की क्वेरी है जो दो अलग-अलग स्थितियों के साथ निर्दिष्ट है। पहली शर्त '{शुल्क: {$lt: 6000}}' है जो '6000' के 'शुल्क' मान से कम दस्तावेज़ लौटाता है। {Charges:“$gt: 7000”} शर्त को वह दस्तावेज़ मिलता है जो “Charges” मान “7000” से अधिक है।
इन शर्तों के संतुष्ट होने पर $or ऑपरेटर मेल खाने वाला दस्तावेज़ देता है। फिर, हम उन क्षेत्रों के नाम निर्दिष्ट करते हैं जो केवल तभी दिखाए जाते हैं जब $or ऑपरेटर मिलान किए गए दस्तावेज़ देता है।
db.Patients.find ( {$ या : [
{ शुल्क: { $ लेफ्टिनेंट : 6000 } } ,
{ शुल्क: { $gt : 7000 } }
]
} , {
पहला नाम: एक ,
शुल्क: एक
} )
मिलान किए गए दस्तावेज़ों के लिए आउटपुट केवल 'फर्स्टनाम' और 'शुल्क' फ़ील्ड प्रदर्शित करता है।
उदाहरण 6: MongoDB $OR बिना किसी तर्क के ऑपरेटर
$or ऑपरेटर के साथ सभी कार्यान्वित प्रश्न तर्क मान के साथ पारित किए जाते हैं। अब, हम $or ऑपरेटर क्वेरी को परिभाषित करते हैं जो कोई तर्क नहीं देता है। जब खाली तर्क $or ऑपरेटर क्वेरी को निष्पादित किया जाता है, तो यह गलत परिणामों का मूल्यांकन करता है। हम एक क्वेरी देते हैं जहां $or ऑपरेशन को खाली एक्सप्रेशन के साथ पास किया जाता है।
डीबी.मरीज.एग्रीगेट ([
{ $मैच : { _पहचान: { $ में : [ ऑब्जेक्ट आईडी ( '6391c61a4c91e007fb4f0228' ) ] } } } ,
{ $प्रोजेक्ट : {
_आईडी: ऑब्जेक्टआईडी ( '6391c61a4c91e007fb4f0227' ) ,
परिणाम: { $ या : [ ] } }
}
]
)
चूंकि $or ऑपरेटर को एक खाली तर्क प्रदान किया जाता है, परिणाम एक गलत मान बताते हैं।
उदाहरण 7: MongoDB $OR ऑपरेटर ऐरे मानों से मेल खाता है
हम अलग-अलग मान वाले दस्तावेज़ों में 'टेस्ट' सरणी सम्मिलित करते हैं। हम परिणामों की जांच करने के लिए $or ऑपरेटर के लिए उस सरणी का उपयोग करते हैं। निम्नलिखित क्वेरी में $ या ऑपरेटर को खोज () विधि के अंदर लागू किया गया है। $or ऑपरेटर एक व्यंजक के रूप में 'परीक्षण' सरणी लेता है। 'टेस्ट' सरणी उन दस्तावेज़ों की पहचान करने के लिए $in ऑपरेटर का उपयोग करती है जिनके फ़ील्ड मान सरणी में 'एमआरआई' और 'सीटी' मानों से मेल खाते हैं।
db.Patients.find ( { $ या : [ { परीक्षा: { $ में : [ 'एमआरआई' , 'सीटी' ] } } ] } ) ।सुंदर ( )शेल पर एक दस्तावेज़ प्रदर्शित होता है जब $or क्वेरी ऑपरेटर निष्पादित होता है जो दर्शाता है कि पुनर्प्राप्त दस्तावेज़ में निर्दिष्ट सरणी मान शामिल हैं।
निष्कर्ष
यह मोंगोडीबी आलेख एक मोंगोडीबी $ या ऑपरेटर क्वेरी के उपयोग को एक सरणी पर तार्किक या संचालन निष्पादित करने के लिए दिखाता है जिसमें दो या दो से अधिक अभिव्यक्तियां शामिल हैं साथ ही कम से कम एक अभिव्यक्ति से मेल खाने वाले दस्तावेज़ों को पुनर्प्राप्त करने के लिए। अलग-अलग ऑपरेशन करने के लिए MongoDB शेल में $or ऑपरेटर से पूछताछ की जाती है। $or ऑपरेटर का प्रयोग सशर्त ऑपरेटरों में एक अभिव्यक्ति के रूप में किया जाता है और सशर्त बयानों के आधार पर दस्तावेज़ लौटाता है।