மோங்கோடிபியில் அல்லது ஆபரேட்டரை எவ்வாறு பயன்படுத்துவது
மோங்கோடிபியில் உள்ள OR ஆபரேட்டர் '$or' வடிவத்தில் குறிப்பிடப்படுகிறது. தருக்க OR செயல்பாடு செய்யப்படும் சதுர அடைப்புக்குறிக்குள் பல வெளிப்பாடுகளை இணைக்க '$or' பயன்படுத்தப்படுகிறது. MongoDB சேகரிப்பில் $ அல்லது ஆபரேட்டரைப் பயன்படுத்துகிறோம். 'நோயாளிகள்' என்ற தலைப்பில் மோங்கோடிபி சேகரிப்பை நாங்கள் உருவாக்குகிறோம். 'நோயாளிகள்' சேகரிப்பு பல ஆவணங்களுடன் செருகப்பட்டது, அதில் நாங்கள் $ அல்லது ஆபரேட்டரைச் செய்கிறோம். பின்வரும் ஆவணங்கள் மோங்கோடிபியில் insertMany() முறையை செயல்படுத்துவதன் மூலம் செருகப்படுகின்றன:
db.Patients.insertMany ( [{
'முதல் பெயர்' : 'ஜெனிபர்' ,
'கடைசிப்பெயர்' : 'ஜோசுவா' ,
'வயது' : 44 ,
'தொலைபேசி எண்' : 43400517 ,
'நியமனம்' : 'பல் மருத்துவர்' ,
'கட்டணங்கள்' : 2000 ,
'சோதனை' : [ 'எக்ஸ்-ரே' , 'இரத்தம்' , 'புல்பால்' ]
} ,
{
'முதல் பெயர்' : 'தாமஸ்' ,
'கடைசிப்பெயர்' : 'ஸ்டீவன்' ,
'வயது' : 74 ,
'தொலைபேசி எண்' : 39034694 ,
'நியமன தேதி' : 'அறுவை சிகிச்சை நிபுணர்' ,
'கட்டணங்கள்' : 6000 ,
'சோதனை' : [ 'தேர்ந்தெடுக்கப்பட்ட' , 'PPT' ]
} ,
{
'முதல் பெயர்' : 'சார்லஸ்' ,
'கடைசிப்பெயர்' : 'டேனியல்' ,
'வயது' : 35 ,
'தொலைபேசி எண்' : 65712165 ,
'நியமனம்' : 'இருதயவியல் மருத்துவர்' ,
'கட்டணங்கள்' : 2000 ,
'சோதனை' : [ 'CT' , 'எம்ஆர்ஐ' ]
} ,
{
'முதல் பெயர்' : 'மிச்செல்' ,
'கடைசிப்பெயர்' : 'பால்' ,
'வயது' : 51 ,
'தொலைபேசி எண்' : 54399288 ,
'நியமனம்' : 'தோல் மருத்துவர்' ,
'கட்டணங்கள்' : 8000 ,
'சோதனை' : [ 'தோல் பயாப்ஸிகள்' , 'மர விளக்கு' , 'தோல் ஸ்கிராப்பிங்' ]
} ,
{
'முதல் பெயர்' : 'ஆண்ட்ரூ' ,
'கடைசிப்பெயர்' : 'ஜெர்ரி' ,
'வயது' : 69 ,
'தொலைபேசி எண்' : 6108100 ,
'நியமனம்' : 'இருதயவியல் மருத்துவர்' ,
'கட்டணங்கள்' : 7000 ,
'சோதனை' : [ 'ஈசிஜி' , 'இரத்த குளுக்கோஸ்' , 'அல்ட்ராசவுண்ட்' ]
}
] )
முன்னர் செருகப்பட்ட ஆவணங்களின் வெளியீடு 'உண்மை' என்பதை ஒப்புக்கொள்கிறது மற்றும் ஒவ்வொரு ஆவணத்திற்கும் 'insertedIds' மதிப்புகளை வழங்குகிறது.
எடுத்துக்காட்டு 1: MongoDB $அல்லது ஆவணங்களை பொருத்த ஆபரேட்டர்
மோங்கோடிபி $அல்லது ஆபரேட்டரின் அடிப்படை வினவல் இங்கே செயல்படுத்தப்பட்டுள்ளது, இது மோங்கோடிபியில் இந்த ஆபரேட்டரின் செயல்பாட்டை நிரூபிக்கிறது. இங்கே, கண்டுபிடிப்பு () முறை மூலம் ஒரு வினவலை வரையறுக்கிறோம். கண்டுபிடி() முறை $ அல்லது ஆபரேட்டருடன் மேலும் குறிப்பிடப்பட்டுள்ளது. $அல்லது ஆபரேட்டர் மதிப்புகளுடன் ஒதுக்கப்படும் 'அபாயின்மெண்ட்' மற்றும் 'கட்டணங்கள்' என்ற இரண்டு புலங்களை எடுக்கிறது. $ அல்லது ஆபரேட்டர் புல மதிப்புடன் பொருந்துகிறது மற்றும் புல மதிப்புகளுடன் பொருந்திய மதிப்புகள் உள்ள ஆவணங்களை மட்டுமே மீட்டெடுக்கிறது. $ அல்லது ஆபரேட்டரின் வினவல் அமைப்பு பின்வருவனவற்றில் வழங்கப்பட்டுள்ளது:
db.Patients.find ( { $அல்லது : [ { நியமனம்: 'தோல் மருத்துவர்' } ,
{ கட்டணங்கள்: 7000 } ] } ) .அழகான ( )
'தோல் மருத்துவரிடம்' 'அப்பாய்ண்ட்மென்ட்' மற்றும் 'கட்டணங்கள்' '7000' ஆகிய ஆவணங்களை நாங்கள் பெறுகிறோம். $அல்லது ஆபரேட்டர் இரண்டு புல மதிப்புகளிலிருந்தும் உண்மையான முடிவுகளைக் கண்டறிந்து, வெளியீட்டில் பொருந்திய ஆவணங்களைத் தருகிறது.
எடுத்துக்காட்டு 2: MongoDB $அல்லது இல்லாத ஆவணங்களை பொருத்த ஆபரேட்டர்
$அல்லது ஆபரேட்டரின் முந்தைய வினவலில், பொருந்திய ஆவணங்களைப் பெற்றோம். இப்போது, 'நோயாளி' சேகரிப்பில் இருந்து இல்லாத ஆவணத்தை மீட்டெடுக்கிறோம். பின்வரும் $அல்லது ஆபரேட்டர் வினவல், 'முதல்பெயர்' 'சார்லஸ்' மற்றும் 'அப்பாயிண்ட்மென்ட்' 'மருத்துவர்' என்ற ஆவணத்தை எடுக்கும். $அல்லது ஆபரேட்டர் 'நோயாளிகள்' சேகரிப்பில் உள்ள இந்த புல மதிப்புகளுடன் பொருந்துகிறது மற்றும் பொருந்திய பிறகு முடிவுகளை உருவாக்குகிறது.
db.Patients.find ( { $அல்லது : [ { 'முதல் பெயர்' : 'சார்லஸ்' } , { 'நியமனம்' : 'மருத்துவர்' } ] } ) .அழகான ( )
$ அல்லது ஆபரேட்டருக்கு ஒரு உண்மையான முடிவு உள்ளது, மற்றொன்று தவறான முடிவு. 'நோயாளி' சேகரிப்பில் உள்ள எந்த ஆவணங்களுடனும் பொருந்தாத 'மருத்துவர்' மதிப்புடன் 'அபாயின்மென்ட்' என்பதை நாங்கள் குறிப்பிடுகிறோம். அதனால்தான், $அல்லது ஆபரேட்டர், 'நோயாளி' என்ற பொருந்திய புலத்தின் ஆவணத்தை வெளியீட்டாக மட்டுமே திருப்பித் தருகிறார்.
உதாரணம் 3: MongoDB $அல்லது பல வாதங்களைக் கொண்ட ஆபரேட்டர்
முந்தைய $அல்லது ஆபரேட்டர் வினவல்களில் இரண்டு வாதங்களை வழங்கியுள்ளோம். இங்கே, நாம் $ அல்லது ஆபரேட்டர் வெளிப்பாடாக இரண்டு வாதங்களுக்கு மேல் அனுப்புகிறோம். 'வயது' புல மதிப்புகளுடன் பொருந்தக்கூடிய ஆவணத்தை நாங்கள் மீட்டெடுக்கிறோம். வெளிப்பாடுகளில் ஒன்று உண்மையாக இருக்க வேண்டும் என்ற பல வாதங்களுக்கு $ அல்லது ஆபரேட்டர் தேவை ஒன்றுதான். $அல்லது ஆபரேட்டரில் பல வாதங்களுக்கான வினவல் பின்வருமாறு கொடுக்கப்பட்டுள்ளது:
db.Patients.find ( { 'நியமனம்' : 'இருதயவியல் மருத்துவர்' , $அல்லது : [ { 'வயது' : இருபது } , { 'வயது' : 35 } , { 'வயது' : 69 } ] } )$ அல்லது ஆபரேட்டரிடமிருந்து பெறப்பட்ட இரண்டு பொருந்திய முடிவுகள் எங்களிடம் உள்ளன. '35' மற்றும் '69' ஆகிய 'வயது' மதிப்புகள் $ அல்லது ஆபரேட்டரால் பெறப்பட்ட 'நோயாளிகள்' ஆவணங்களுடன் ஒப்பிடப்பட்டு ஷெல்லில் காட்டப்படும்.
எடுத்துக்காட்டு 4: MongoDB $அல்லது ஒருங்கிணைப்புடன் செயல்படுபவர்
MongoDB இல் உள்ள மொத்த முறையானது பதிவுகளை ஒரு தொகுப்பாக இணைக்கிறது. எனவே, அவை வெவ்வேறு செயல்பாடுகளுக்குப் பயன்படுத்தப்படலாம். ஒன்று அல்லது அதற்கு மேற்பட்ட வெளிப்பாடுகளை மதிப்பிடும் $அல்லது ஆபரேட்டரை நாங்கள் ஒருங்கிணைக்கும் முறையில் செய்கிறோம். இல்லையெனில், அறிக்கை தவறானதாகக் கருதப்படுகிறது.
நாங்கள் முதலில் aggregate() முறையைத் தொடங்கும் $அல்லது aggregation operator வினவலைப் பெறுவோம், அது $match மற்றும் $project ஆகியவற்றை ஆவணத்தில் இருந்து பொருத்த வேண்டிய _id மதிப்புடன் குறிப்பிடுகிறது. பின்னர், 'வயது' புலத்தை '1' மதிப்புடன் அமைக்கிறோம், ஏனெனில் இந்த புலம் அனைத்து ஆவணங்களிலிருந்தும் மட்டுமே உருவாக்கப்பட வேண்டும். அதன் பிறகு, $ அல்லது செயல்பாட்டைக் கொண்ட “முடிவுகள்” பண்புக்கூறை வரையறுக்கிறோம். $ அல்லது ஆபரேட்டர் $gt இன் நிபந்தனை அறிக்கையை எடுக்கிறார். “$gt:[“$Age”, 69]” வெளிப்பாடு “69” ஐ விட அதிகமாக இருக்கும் வயதைக் கொடுக்கிறது. இந்த வெளிப்பாட்டிற்கான முடிவுகள் $அல்லது ஆபரேட்டருக்கு அனுப்பப்படும் மற்றும் $அல்லது ஆபரேட்டர் குறிப்பிட்ட நிபந்தனையை பூர்த்தி செய்யும் ஆவணத்தை திருப்பி அனுப்பும்.
db.Patients.மொத்தம் ([
{ $ பொருத்தம் : { ஐடி: பொருள் ஐடி ( '6391c61a4c91e007fb4f0228' ) } } ,
{ $ திட்டம் : {
ஐடி: பொருள் ஐடி ( '6391c61a4c91e007fb4f0227' ) ,
வயது: ஒன்று ,
விளைவாக: { $அல்லது : [
{ $gt : [ ' $வயது ' , 69 ] }
] }
}
}
]
)
'69' ஐ விட அதிகமாக இருக்கும் 'வயது' என்பது '74' ஆகும், இது 'உண்மையான' மதிப்பைக் கொண்ட 'முடிவுகள்' உடன் வெளியீட்டு ஷெல்லில் காட்டப்படும்.
எடுத்துக்காட்டு 5: மோங்கோடிபி $அல்லது ஆபரேட்டர் நிபந்தனைகளைத் தூண்டுகிறது
மோங்கோடிபியின் $அல்லது ஆபரேட்டர் ஒரு தருக்க ஆபரேட்டர். இந்த லாஜிக்கல் ஆபரேட்டரை நிபந்தனை ஆபரேட்டருடன் பயன்படுத்தலாம். $ அல்லது ஆபரேட்டர் நிபந்தனைகள் திருப்தி அடையும் போது முடிவுகளை வழங்கும். கூடுதலாக, $ அல்லது ஆபரேட்டரில் ஒன்றுக்கு மேற்பட்ட நிபந்தனைகளை நாம் செயல்படுத்தலாம், அதில் ஒன்று உண்மையாக இருக்க வேண்டும். இங்கே, எங்களிடம் $அல்லது ஆபரேட்டரின் வினவல் உள்ளது, இது இரண்டு வெவ்வேறு நிபந்தனைகளுடன் குறிப்பிடப்பட்டுள்ளது. முதல் நிபந்தனை “{கட்டணங்கள்:{$lt: 6000}}” இது “6000” இன் “கட்டணங்கள்” மதிப்பை விட குறைவான ஆவணத்தை வழங்கும். {கட்டணங்கள்:“$gt: 7000”} நிபந்தனையானது “7000” இன் “கட்டணங்கள்” மதிப்பை விட அதிகமான ஆவணத்தைப் பெறுகிறது.
$ அல்லது ஆபரேட்டர் இந்த நிபந்தனைகள் திருப்தி அடையும் போது பொருந்திய ஆவணத்தை வழங்குகிறது. பிறகு, $ அல்லது ஆபரேட்டர் பொருந்திய ஆவணத்தைக் கொடுக்கும்போது மட்டுமே காட்டப்படும் புலங்களின் பெயர்களைக் குறிப்பிடுகிறோம்.
db.Patients.find ( {$அல்லது : [
{ கட்டணங்கள்: { $lt : 6000 } } ,
{ கட்டணங்கள்: { $gt : 7000 } }
]
} , {
முதல் பெயர்: ஒன்று ,
கட்டணங்கள்: ஒன்று
} )
பொருந்திய ஆவணங்களுக்கான 'முதல்பெயர்' மற்றும் 'கட்டணங்கள்' புலங்களை மட்டுமே வெளியீடு காட்டுகிறது.
எடுத்துக்காட்டு 6: மோங்கோடிபி $அல்லது எந்த வாதமும் இல்லாத ஆபரேட்டர்
$ அல்லது ஆபரேட்டருடன் செயல்படுத்தப்பட்ட அனைத்து வினவல்களும் வாத மதிப்புடன் அனுப்பப்படும். இப்போது, எந்த வாதத்தையும் உள்ளிடாத $ அல்லது ஆபரேட்டர் வினவலை வரையறுக்கிறோம். வெற்று வாதம் $ அல்லது ஆபரேட்டர் வினவல் செயல்படுத்தப்படும் போது, அது தவறான முடிவுகளை மதிப்பிடுகிறது. வெற்று எக்ஸ்ப்ரெஷனுடன் $அல்லது செயல்பாடு கடந்து செல்லும் வினவலை வழங்குகிறோம்.
db.Patients.மொத்தம் ([
{ $ பொருத்தம் : { _id: { $in : [ பொருள் ஐடி ( '6391c61a4c91e007fb4f0228' ) ] } } } ,
{ $ திட்டம் : {
ஐடி: பொருள் ஐடி ( '6391c61a4c91e007fb4f0227' ) ,
விளைவாக: { $அல்லது : [ ] } }
}
]
)
$அல்லது ஆபரேட்டருக்கு வெற்று வாதம் வழங்கப்பட்டதன் விளைவாக, முடிவுகள் தவறான மதிப்பைக் குறிப்பிடுகின்றன.
எடுத்துக்காட்டு 7: MongoDB $OR ஆபரேட்டர் வரிசை மதிப்புகளுடன் பொருந்துகிறது
வெவ்வேறு மதிப்புகளைக் கொண்ட ஆவணங்களில் 'சோதனை' வரிசையைச் செருகுவோம். முடிவுகளை ஆராய $ அல்லது ஆபரேட்டருக்கு அந்த வரிசையைப் பயன்படுத்துகிறோம். பின்வரும் வினவலில் உள்ள $அல்லது ஆபரேட்டர், find() முறையில் செயல்படுத்தப்படுகிறது. $ அல்லது ஆபரேட்டர் 'சோதனை' வரிசையை ஒரு வெளிப்பாடாக எடுத்துக்கொள்கிறார். 'Test' வரிசை $in ஆபரேட்டரைப் பயன்படுத்தி, அதன் புல மதிப்புகள் வரிசையில் உள்ள 'MRI' மற்றும் 'CT' மதிப்புகளுடன் பொருந்துகின்றன.
db.Patients.find ( { $அல்லது : [ { சோதனை: { $in : [ 'எம்ஆர்ஐ' , 'CT' ] } } ] } ) .அழகான ( )$ அல்லது வினவல் ஆபரேட்டர் செயல்படுத்தப்படும் போது ஷெல்லில் ஒரு ஆவணம் காட்டப்படும், இது மீட்டெடுக்கப்பட்ட ஆவணத்தில் குறிப்பிட்ட வரிசை மதிப்புகள் இருப்பதைக் காட்டுகிறது.
முடிவுரை
இந்த MongoDB கட்டுரையானது, இரண்டு அல்லது அதற்கு மேற்பட்ட வெளிப்பாடுகளை உள்ளடக்கிய வரிசையில் தருக்க அல்லது செயல்பாடுகளைச் செயல்படுத்தவும், குறைந்தபட்சம் ஒரு வெளிப்பாடுகளுடன் பொருந்தக்கூடிய ஆவணங்களை மீட்டெடுக்கவும் MongoDB $ அல்லது ஆபரேட்டர் வினவலைப் பயன்படுத்துவதை விளக்குகிறது. வெவ்வேறு செயல்பாடுகளைச் செய்ய $ அல்லது ஆபரேட்டர் மோங்கோடிபி ஷெல்லில் வினவப்பட்டது. நிபந்தனை ஆபரேட்டர்களில் $அல்லது ஆபரேட்டர் ஒரு வெளிப்பாடாகப் பயன்படுத்தப்படுகிறது மற்றும் நிபந்தனை அறிக்கைகளின் அடிப்படையில் ஆவணங்களை வழங்குகிறது.