மோங்கோடிபி $மேக்ஸ் ஆபரேட்டர்

Monkotipi Meks Aparettar



பதிவுகளைப் புதுப்பித்தல், புதிய பதிவைச் சேர்ப்பது மற்றும் குறிப்பிட்ட நிபந்தனையின் கீழ் பதிவுகளைக் காண்பித்தல் போன்ற சிறப்பு நோக்கத்திற்கான பரிவர்த்தனைகளைச் செய்ய MongoDB பல ஆபரேட்டர்களைக் கொண்டு வந்தது. அந்த ஆபரேட்டர்களில் ஒன்று '$max' ஆபரேட்டர் ஆகும், இது பதிவில் மிகப்பெரிய மதிப்பைச் சரிபார்க்கப் பயன்படுகிறது. அதுமட்டுமின்றி, 'புதுப்பிப்பு' செயல்பாட்டு அறிவுறுத்தலில் அவற்றை ஒப்பிட்டுப் பார்த்த பிறகு, சிறிய மதிப்பை புதிய பெரிய மதிப்புடன் புதுப்பிக்க இதைப் பயன்படுத்தலாம். '$max' ஆபரேட்டரின் மற்ற பயன்பாடானது, தரவுத்தளத்தில் சில நகல் பதிவுகள் இருக்கும் போது, ​​சிறிய மதிப்பைப் புறக்கணிக்கும் போது, ​​ஒரு குறிப்பிட்ட சேகரிப்பின் பதிவுகளை குழுவாகவும் காட்சிப்படுத்தவும், அது மிகப்பெரிய மதிப்பை மட்டுமே காண்பிக்கும். இந்த வழிகாட்டியில், எங்கள் Windows இயங்குதளத்தில் MongoDB கட்டளை வரி பயன்பாட்டில் '$max' ஆபரேட்டரின் முன்னர் குறிப்பிடப்பட்ட பயன்பாடுகளைப் பற்றி விவாதிக்க எளிய வினவல் எடுத்துக்காட்டுகளைப் பயன்படுத்தப் போகிறோம்.

எடுத்துக்காட்டு 1:

மோங்கோடிபி ஷெல்லில் '$max' ஆபரேட்டர் எவ்வாறு செயல்படுகிறது என்பதைப் பற்றி விவாதிக்க விளக்கப்படத்துடன் தொடங்கி, ஏற்கனவே உருவாக்கப்பட வேண்டிய 'தரவு' என்ற பெயரில் ஒரு சேகரிப்பு எங்களிடம் இருக்க வேண்டும். இந்தத் தொகுப்பை உருவாக்க, எந்த 'உருவாக்கு' அறிவுறுத்தலும் இல்லாமல் நேரடியாக சில பதிவுகளைச் சேர்க்க வேண்டும். ஒரு தொகுப்பை உருவாக்கவும் அதில் பதிவுகளைச் சேர்க்கவும் செருகும் வழிமுறை போதுமானது. நான்கு பதிவுகளைச் சேர்க்க, வினவலில் “insertMany” செயல்பாட்டைப் பயன்படுத்துகிறோம், ஒவ்வொன்றும் வெவ்வேறு வகைகளில் 4 புலங்களைக் கொண்டுள்ளன.

சோதனை > db.data.insertMany ( [ { 'ஐடி' : ஒன்று , 'பெயர்' : 'பிராவோ' , 'சம்பளம்' : 65000 , 'வயது' : 44 } ,
... { 'ஐடி' : 2 , 'பெயர்' : 'ஸ்டீபன்' , 'சம்பளம்' : 77000 , 'வயது' : 55 } ,
... { 'ஐடி' : 3 , 'பெயர்' : 'மரியா' , 'சம்பளம்' : 42000 , 'வயது' : 27 } ,
... { 'ஐடி' : 4 , 'பெயர்' : 'ஹாக்கின்' , 'சம்பளம்' : 58000 , 'வயது' : 33 } ] )







செருகும் கட்டளை வெற்றிகரமாக உள்ளது மற்றும் வெளியீடு செய்தி பதிவுகள் சேர்க்கப்பட்டதைக் காட்டுகிறது.



எங்கள் MongoDB இன் 'தரவு' சேகரிப்பில் பதிவுகளைச் செருகிய பிறகு, அந்த பதிவுகளை ஷெல்லில் பார்க்கும் நேரம் இது. எனவே, மோங்கோடிபி கிளியில் “find()” செயல்பாட்டு அறிவுறுத்தலை இயக்குகிறோம், அதைத் தொடர்ந்து “forEach()” செயல்பாட்டை இயக்குகிறோம், JSON வடிவத்தில் முடிவைக் காண்பிக்க printjson வாதத்தை எடுத்துக்கொள்கிறோம். ஷெல்லில் காட்டப்படும் முடிவு, பின்வரும் வெளியீட்டுப் படத்தில் காட்டப்பட்டுள்ள சேகரிப்பில் மொத்தம் 4 ஆவணங்களைக் காட்டுகிறது:



சோதனை > db.data.find ( ) .ஒவ்வொரு ( printjson )





ஏற்கனவே செருகப்பட்ட பதிவுகளை மாற்ற MongoDB இன் புதுப்பிப்பு கட்டளையில் '$max' ஆபரேட்டரை முயற்சிப்போம். எனவே, 'id' புலம் '2' மதிப்பைக் கொண்டிருக்கும் ஒரு குறிப்பிட்ட பதிவைப் போன்ற 'தரவு' சேகரிப்பின் ஒரு பதிவை மட்டும் மாற்ற இங்கே updateOne() பயன்படுத்தப்படுகிறது. '$max' ஆபரேட்டர் 'டேட்டா' சேகரிப்பின் 'Salary' புலத்தில் 'சம்பளம்' புலம் 55000 ஐ விட அதிகமாக உள்ளதா என்பதைச் சரிபார்க்க பயன்படுத்தப்படுகிறது. இல்லையெனில், பதிவை 55000 உடன் புதுப்பிக்கவும். இதற்கான வெளியீடு முடிவு updateOne() செயல்பாடு வினவல், '0' மாற்ற எண்ணிக்கையை பதிவு '2' ஆகக் காட்டுகிறது, 55000க்கும் குறைவான சம்பள மதிப்பு உள்ளது.

சோதனை > db.data.updateOne ( { ஐடி: 2 } , { $அதிகபட்சம் : { சம்பளம்: 55000 } } )



இந்தப் புதுப்பித்தலுக்குப் பிறகு, MongoDB கட்டளை வரி ஷெல்லில் மாற்றியமைக்கப்பட்ட முடிவைக் காண்பிக்க அதே “find()” செயல்பாட்டு வினவலை முயற்சிப்போம். ஆனால் 'புதுப்பிப்பு' வழிமுறையைப் பயன்படுத்துவதற்கு முன்பு நாம் பெற்ற அதே வெளியீட்டைப் பெறுகிறோம். 77000 மதிப்பு 55000 ஐ விட பெரியதாக இருப்பதால் எந்த மாற்றமும் இல்லை.

சோதனை > db.data.find ( ) .ஒவ்வொரு ( printjson )

அதே updateOne() வினவலை மீண்டும் ஒரு சிறிய மாற்றத்துடன் முயற்சிப்போம். இந்த முறை, எங்கள் வெளியீட்டில் மாற்றத்தை ஏற்படுத்த, 'டேட்டா' சேகரிப்பின் 'சம்பளம்' துறையில் ஏற்கனவே இருக்கும் '77000' மதிப்பை விட '85000' என்ற பெரிய மதிப்பை முயற்சிக்கிறோம். இந்த வினவலில் உள்ள '$max' ஆபரேட்டரால் ஒப்பிடப்பட்ட பிறகு, புலத்தில் ஏற்கனவே உள்ள '77000' மதிப்பை '85000' மதிப்பானது மாற்றியமைப்பதால் இந்த முறை '1' என்ற மாற்றத்தை வெளியீடு காட்டுகிறது.

சோதனை > db.data.updateOne ( { ஐடி: 2 } , { $அதிகபட்சம் : { சம்பளம்: 85000 } } )

மோங்கோடிபியின் “$max” ஆபரேட்டர் மூலம் “77000” இன் சிறிய மதிப்பை “85000” என்ற புதிய மதிப்புடன் வெற்றிகரமாக மாற்றிய பிறகு, இந்த புதுப்பிப்பைச் சரிபார்க்க “db” அறிவுறுத்தலில் உள்ள “find()” செயல்பாட்டைப் பயன்படுத்துகிறோம். அது வெற்றிகரமாக புதுப்பிக்கப்பட்டதா இல்லையா. இந்தத் தொகுப்பில் 2வது பதிவின் 'சம்பளம்' புலத்தில் உள்ள மதிப்பு மிகச்சரியாக புதுப்பிக்கப்பட்டிருப்பதை வெளியீடு காட்டுகிறது.

சோதனை > db.data.find ( ) .ஒவ்வொரு ( printjson )

எடுத்துக்காட்டு 2:

மோங்கோடிபியில் '$max' ஆபரேட்டரைப் பயன்படுத்த மற்றொரு உதாரணத்திற்குச் செல்வோம். இந்த நேரத்தில், '$max' ஆபரேட்டரை குழுவாக ஒதுக்கி, அதே புல மதிப்புகளுக்கு ஏதேனும் நகல் இருந்தால், தொகுப்பின் தனிப்பட்ட பதிவுகளைக் காண்பிக்கிறோம். இதற்காக, 'சோதனை' தரவுத்தளத்தின் 'தரவு' சேகரிப்பில் மேலும் 2 பதிவுகளைச் செருகுவோம். இந்தப் பதிவுகளில் 'பெயர்' புலத்தில் உள்ள 2 அதே மதிப்புகள் உள்ளன, அவை ஏற்கனவே செருகப்பட்ட 4 பதிவுகளிலும் உள்ளன, மீதமுள்ளவை வேறுபட்டவை. பதிவுகளைச் செருக, 'தரவு' சேகரிப்பு புதுப்பிக்கப்படுவதற்கு, அதில் 'insertMany' செயல்பாட்டைக் கொண்டிருக்கும் அதே 'db' அறிவுறுத்தலைப் பயன்படுத்துகிறோம்.

சோதனை > db.data.insertMany ( [ { 'ஐடி' : 5 , 'பெயர்' : 'பிராவோ' , 'சம்பளம்' : 35000 , 'வயது' : நான்கு. ஐந்து } ,
{ 'ஐடி' : 6 , 'பெயர்' : 'ஹாக்கின்' , 'சம்பளம்' : 67000 , 'வயது' : 33 } ] )

அறிவுறுத்தல் வெற்றிகரமாக செயல்படுத்தப்படுகிறது.

இப்போது 2 புதிய பதிவுகள் சேர்க்கப்பட்டதால், 'db' அறிவுறுத்தலில் 'forEach' செயல்பாட்டைத் தொடர்ந்து அதே 'find' செயல்பாட்டைப் பயன்படுத்தி அவற்றைக் காண்பிக்கலாம். படத்தில் உள்ள பின்வரும் காட்சி வெளியீடு இந்தத் தொகுப்பின் முடிவில் 2 புதிய பதிவுகளைக் காட்டுகிறது:

சோதனை > db.data.find ( ) .ஒவ்வொரு ( printjson )

'தரவு' சேகரிப்பின் 6 பதிவுகளைக் காண்பித்த பிறகு, அதில் மொத்த செயல்பாட்டைச் செய்ய நாங்கள் தயாராக உள்ளோம். எனவே, 'ஒட்டுமொத்தம்' செயல்பாடு பின்வரும் பட்டியலிடப்பட்ட வினவலில் பயன்படுத்தப்படுகிறது. இந்தச் செயல்பாட்டின் மூலம், 'ID' மற்றும் 'Salary' புலத்தின் தனிப்பட்ட பெயர்களின்படி 'தரவு' சேகரிப்பின் பதிவைக் குழுவாக்க '$group' ஆபரேட்டரைப் பயன்படுத்துகிறோம். '$max' ஆபரேட்டர் காட்டப்படும் அதிகபட்ச மதிப்புகளைப் பெற, பதிவுகளின் 'சம்பளம்' புலத்தில் பயன்படுத்தப்படுகிறது. இந்தக் குழுவாகக் காட்டப்படுவதற்கு 'ஐடி' ஆகப் பயன்படுத்தப்படும் 'பெயர்' புலத்தில் உள்ள நகல் பெயர்களின்படி சம்பளம்' புலத்திலிருந்து அதிக மதிப்பைப் பெறுங்கள். மொத்தம் 4 பதிவுகள் காட்டப்படும். மிகப்பெரிய மதிப்பு காட்டப்படும் போது சிறிய மதிப்பு (நகல் பதிவுகளில் இருந்து) புறக்கணிக்கப்படும்.

db.data.aggregate ( [ { $குழு : { _id: ' $பெயர் ' , சம்பளம்: { $அதிகபட்சம் : ' $சம்பளம் ' } } } ] )

முடிவுரை

இந்த வழிகாட்டியின் முதல் பத்தி, MongoDB இல் பயன்படுத்தப்படும் ஆபரேட்டர்களின் முக்கியத்துவத்தைப் புரிந்துகொள்ள உதவுகிறது, குறிப்பாக '$max' ஆபரேட்டர் மற்றும் MongoDB ஷெல்லில் அதன் பயன்பாடு. இந்த வழிகாட்டியில் இரண்டு கட்டளை அடிப்படையிலான எடுத்துக்காட்டுகள் உள்ளன, அவை '$max' ஆபரேட்டருடன் அதன் நோக்கத்தை விளக்குகின்றன. MongoDB விளக்கப்படங்களைப் பார்க்கும்போது, ​​தரவுத்தளத்தில் சில பயனுள்ள பரிவர்த்தனைகளைச் செய்ய முடியும், அது ஏற்கனவே இருக்கும் பதிவை புதிய மதிப்புடன் மாற்றுவது அல்லது பதிவுகளை '$max' ஆபரேட்டர் மூலம் குழுவாகக் காட்டுவது.