MongoDB $Max آپریٹر

Mongodb Max Apry R



MongoDB بہت سے آپریٹرز کے ساتھ خاص مقصد کے لین دین کو انجام دینے کے لیے آیا جیسے ریکارڈز کو اپ ڈیٹ کرنا، ایک نیا ریکارڈ شامل کرنا، اور ریکارڈز کو ایک خاص حالت میں ڈسپلے کرنا۔ ان آپریٹرز میں سے ایک '$max' آپریٹر ہے جسے ریکارڈ میں سب سے بڑی قدر کی جانچ کرنے کے لیے استعمال کیا جاتا ہے۔ اس کے علاوہ، ہم 'اپ ڈیٹ' فنکشن ہدایات میں ان کا موازنہ کرنے کے بعد سب سے چھوٹی قدر کو نئی سب سے بڑی قدر کے ساتھ اپ ڈیٹ کرنے کے لیے استعمال کر سکتے ہیں۔ '$max' آپریٹر کا دوسرا استعمال کسی مخصوص مجموعہ کے ریکارڈز کو اس طرح سے گروپ اور ڈسپلے کرنا ہے کہ یہ صرف سب سے بڑی قدر کو ظاہر کر سکتا ہے جبکہ سب سے چھوٹی قدر کو نظر انداز کرتے ہوئے جب ڈیٹا بیس میں کچھ ڈپلیکیٹ ریکارڈ موجود ہوں۔ اس گائیڈ میں، ہم اپنے ونڈوز پلیٹ فارم میں MongoDB کمانڈ لائن یوٹیلیٹی میں '$max' آپریٹر کے پہلے ذکر کردہ استعمالات پر بحث کرنے کے لیے سادہ استفسار کی مثالیں استعمال کرنے جا رہے ہیں۔

مثال 1:

بحث کرنے کے لئے مثال کے ساتھ شروع کرتے ہوئے اور '$ max' آپریٹر MongoDB شیل میں کیسے کام کرتا ہے، ہمارے پاس 'ڈیٹا' کے نام سے ایک مجموعہ ہونا ضروری ہے جسے پہلے سے بنایا جانا چاہیے۔ اس مجموعہ کو بنانے کے لیے، ہمیں کسی بھی 'تخلیق' ہدایات کے استعمال کے بغیر براہ راست اس میں کچھ ریکارڈز شامل کرنے چاہئیں۔ داخل کرنے کی ہدایت ایک مجموعہ بنانے اور اس میں ریکارڈ شامل کرنے کے لیے کافی ہے۔ ہم سوال میں 'insertMany' فنکشن کا استعمال کرتے ہوئے چار ریکارڈز شامل کرتے ہیں، ہر ایک میں مختلف اقسام کے 4 فیلڈز ہوتے ہیں۔

پرکھ > db.data.insertMany ( [ { 'id' : ایک ، 'نام' : 'براوو' ، 'تنخواہ' : 65000 ، 'عمر' : 44 } ،
... { 'id' : 2 ، 'نام' : 'سٹیفن' ، 'تنخواہ' : 77000 ، 'عمر' : 55 } ،
... { 'id' : 3 ، 'نام' : 'ماریہ' ، 'تنخواہ' : 42000 ، 'عمر' : 27 } ،
... { 'id' : 4 ، 'نام' : 'ہاکن' ، 'تنخواہ' : 58000 ، 'عمر' : 33 } ] )







داخل کرنے کی کمانڈ کامیاب ہے اور آؤٹ پٹ پیغام سے پتہ چلتا ہے کہ ریکارڈز شامل کیے گئے ہیں۔



ہمارے MongoDB کے 'ڈیٹا' مجموعہ میں ریکارڈز داخل کرنے کے بعد، اب وقت آگیا ہے کہ ان ریکارڈز کو شیل پر دیکھیں۔ اس طرح، ہم MongoDB Cli پر 'find()' فنکشن انسٹرکشن چلاتے ہیں جس کے بعد 'forEach()' فنکشن ہوتا ہے، JSON فارمیٹ میں نتیجہ ظاہر کرنے کے لیے printjson آرگیومنٹ لے کر۔ شیل میں ظاہر ہونے والا نتیجہ مجموعہ میں کل 4 دستاویزات دکھاتا ہے جو درج ذیل آؤٹ پٹ امیج میں دکھایا گیا ہے۔



پرکھ > db.data.find ( ) .ہر ایک کے لئے ( printjson )





آئیے پہلے سے داخل کردہ ریکارڈز میں ترمیم کرنے کے لیے MongoDB کی اپ ڈیٹ کمانڈ میں '$max' آپریٹر کو آزماتے ہیں۔ اس طرح، updateOne() کا استعمال یہاں صرف 'ڈیٹا' جمع کرنے کے ایک ریکارڈ میں ترمیم کرنے کے لیے کیا جاتا ہے جیسے کہ ایک مخصوص ریکارڈ جہاں 'id' فیلڈ کی قدر '2' ہوتی ہے۔ '$max' آپریٹر کو 'ڈیٹا' جمع کرنے کے 'تنخواہ' فیلڈ میں لاگو کیا جاتا ہے تاکہ یہ معلوم کیا جا سکے کہ آیا 'تنخواہ' فیلڈ کی کوئی قدر ہے جو 55000 سے زیادہ ہے۔ اگر نہیں، تو 55000 کے ساتھ ریکارڈ کو اپ ڈیٹ کریں۔ اس کا آؤٹ پٹ نتیجہ updateOne() فنکشن استفسار جو کہ '0' ترمیم کا شمار ظاہر کرتا ہے بطور ریکارڈ '2' کی تنخواہ کی قیمت 55000 سے کم ہے۔

پرکھ > db.data.updateOne ( { id: 2 } ، { $زیادہ سے زیادہ : { تنخواہ: 55000 } } )



اس اپ ڈیٹ کے بعد، ہم MongoDB کمانڈ لائن شیل پر تبدیل شدہ نتیجہ ظاہر کرنے کے لیے وہی 'find()' فنکشن استفسار آزماتے ہیں۔ لیکن ہمیں وہی آؤٹ پٹ ملتا ہے جو ہمیں 'اپ ڈیٹ' انسٹرکشن استعمال کرنے سے پہلے ملا تھا۔ کوئی تبدیلی نہیں ہوئی کیونکہ 77000 کی قدر 55000 سے بڑی ہے۔

پرکھ > db.data.find ( ) .ہر ایک کے لئے ( printjson )

آئیے ایک بار پھر تھوڑی سی ترمیم کے ساتھ اسی updateOne() استفسار کو آزماتے ہیں۔ اس بار، ہم '77000' ویلیو کے مقابلے '85000' بڑی قدر آزماتے ہیں جو ہمارے آؤٹ پٹ میں فرق کرنے کے لیے 'ڈیٹا' کلیکشن کے 'تنخواہ' فیلڈ میں پہلے سے موجود ہے۔ آؤٹ پٹ اس بار ترمیم کی گنتی '1' کو ظاہر کرتا ہے کیونکہ '85000' ویلیو فیلڈ میں '77000' کی پہلے سے موجود قدر کی جگہ لے لیتی ہے جب موازنہ صرف اس سوال میں '$max' آپریٹر کی وجہ سے ہوا۔

پرکھ > db.data.updateOne ( { id: 2 } ، { $زیادہ سے زیادہ : { تنخواہ: 85000 } } )

MongoDB کے '$max' آپریٹر کے ذریعے کامیابی کے ساتھ '77000' کی چھوٹی قدر کو '85000' کی نئی قدر سے تبدیل کرنے کے بعد، ہم آخر کار اس اپ ڈیٹ کو چیک کرنے کے لیے 'db' ہدایات میں 'find()' فنکشن استعمال کرتے ہیں، چاہے اسے کامیابی سے اپ ڈیٹ کیا گیا ہو یا نہیں۔ آؤٹ پٹ سے پتہ چلتا ہے کہ اس مجموعہ میں دوسرے ریکارڈ کے 'تنخواہ' فیلڈ میں قدر بالکل اپ ڈیٹ ہے۔

پرکھ > db.data.find ( ) .ہر ایک کے لئے ( printjson )

مثال 2:

آئیے MongoDB میں '$max' آپریٹر کا استعمال کرنے کے لیے ایک اور مثال پر جائیں۔ اس بار، ہم نے '$max' آپریٹر کو گروپ کرنے کے لیے کاسٹ کر دیا ہے اور اگر ایک ہی فیلڈ ویلیوز کے لیے کوئی ڈپلیکیٹس موجود ہیں تو کسی مجموعہ کے منفرد ریکارڈز کو ڈسپلے کریں۔ اس کے لیے، ہم 'ٹیسٹ' ڈیٹا بیس کے 'ڈیٹا' مجموعہ میں مزید 2 ریکارڈ داخل کرتے ہیں۔ یہ ریکارڈز 'نام' فیلڈ میں 2 ایک جیسی اقدار پر مشتمل ہیں جو پہلے سے داخل کردہ 4 ریکارڈز میں بھی ہیں اور باقی مختلف ہیں۔ ریکارڈز داخل کرنے کے لیے، ہم وہی 'db' انسٹرکشن استعمال کرتے ہیں جس میں 'insertMany' فنکشن ہوتا ہے تاکہ 'ڈیٹا' کو اپ ڈیٹ کیا جا سکے۔

پرکھ > db.data.insertMany ( [ { 'id' : 5 ، 'نام' : 'براوو' ، 'تنخواہ' : 35000 ، 'عمر' : چار پانچ } ،
{ 'id' : 6 ، 'نام' : 'ہاکن' ، 'تنخواہ' : 67000 ، 'عمر' : 33 } ] )

ہدایت کو کامیابی کے ساتھ نافذ کیا گیا ہے۔

اب جبکہ 2 نئے ریکارڈز شامل ہو گئے ہیں، آپ انہیں 'db' انسٹرکشن میں 'forEach' فنکشن کے بعد اسی 'find' فنکشن کا استعمال کرتے ہوئے بھی دکھا سکتے ہیں۔ تصویر میں درج ذیل ڈسپلے آؤٹ پٹ اس مجموعہ کے آخر میں 2 نئے ریکارڈ دکھاتا ہے:

پرکھ > db.data.find ( ) .ہر ایک کے لئے ( printjson )

'ڈیٹا' جمع کرنے کے 6 ریکارڈ ظاہر کرنے کے بعد، ہم اس پر مجموعی فنکشن انجام دینے کے لیے تیار ہیں۔ لہذا، 'مجموعی' فنکشن درج ذیل درج سوال میں استعمال کیا جاتا ہے۔ اس فنکشن کے ساتھ، ہم فیلڈ 'id' اور 'تنخواہ' فیلڈ کے منفرد ناموں کے مطابق 'ڈیٹا' جمع کرنے کے ریکارڈ کو گروپ کرنے کے لیے '$group' آپریٹر کا استعمال کرتے ہیں۔ '$max' آپریٹر کو ریکارڈز کے 'تنخواہ' فیلڈ میں لاگو کیا جاتا ہے تاکہ زیادہ سے زیادہ قدریں ظاہر کی جائیں۔ 'نام' فیلڈ میں ڈپلیکیٹ ناموں کے مطابق تنخواہ' فیلڈ سے سب سے زیادہ قیمت حاصل کریں جو اس گروپنگ کو ظاہر کرنے کے لئے 'id' کے طور پر استعمال ہوتا ہے۔ کل 4 ریکارڈز دکھائے جاتے ہیں۔ سب سے چھوٹی قدر (ڈپلیکیٹ ریکارڈز سے) کو نظر انداز کر دیا جاتا ہے جبکہ سب سے بڑی قدر ظاہر ہوتی ہے۔

db.data.aggregate ( [ { گروپ : { _id: ' $Name ' تنخواہ: { $زیادہ سے زیادہ : ' $ تنخواہ ' } } } ] )

نتیجہ

اس گائیڈ کا پہلا پیراگراف آپ کو آپریٹرز کی اہمیت کو سمجھنے میں مدد کرتا ہے جو MongoDB میں استعمال ہوتے ہیں، خاص طور پر '$max' آپریٹر اور MongoDB شیل میں اس کے استعمال کو۔ اس گائیڈ میں کمانڈ پر مبنی دو مثالیں ہیں جو اپنے مقصد کو ظاہر کرنے کے لیے '$max' آپریٹر سے متعلق ہیں۔ MongoDB کی تمثیلوں کو دیکھتے ہوئے، آپ ڈیٹا بیس میں کچھ مفید لین دین کرنے کے قابل ہو جائیں گے، چاہے وہ پہلے سے موجود ریکارڈ کو نئی قدر سے تبدیل کرنے کے بارے میں ہو یا '$max' آپریٹر کے ذریعے ریکارڈز کو گروپ کر کے ڈسپلے کرنے کے بارے میں ہو۔