MongoDB $Max অপারেটর

Mongodb Max Aparetara



মঙ্গোডিবি অনেক অপারেটরের সাথে বিশেষ-উদ্দেশ্য লেনদেন যেমন রেকর্ড আপডেট করা, একটি নতুন রেকর্ড যোগ করা এবং একটি নির্দিষ্ট শর্তের অধীনে রেকর্ডগুলি প্রদর্শন করে। এই অপারেটরগুলির মধ্যে একটি হল '$max' অপারেটর যা রেকর্ডের সবচেয়ে বড় মান পরীক্ষা করতে ব্যবহৃত হয়। তা ছাড়া, আমরা 'আপডেট' ফাংশন নির্দেশে তুলনা করার পরে একটি নতুন বৃহত্তম মান সহ ক্ষুদ্রতম মান আপডেট করতে এটি ব্যবহার করতে পারি। '$max' অপারেটরের অন্য ব্যবহার হল একটি নির্দিষ্ট সংগ্রহের রেকর্ডগুলিকে এমনভাবে গোষ্ঠীবদ্ধ করা এবং প্রদর্শন করা যাতে এটি ডাটাবেসে কিছু সদৃশ রেকর্ড থাকাকালীন ক্ষুদ্রতম মানটিকে উপেক্ষা করে শুধুমাত্র সবচেয়ে বড় মান প্রদর্শন করতে পারে। এই নির্দেশিকায়, আমরা আমাদের উইন্ডোজ প্ল্যাটফর্মে MongoDB কমান্ড-লাইন ইউটিলিটিতে '$max' অপারেটরের পূর্বে-উল্লেখিত ব্যবহারগুলি নিয়ে আলোচনা করার জন্য সহজ প্রশ্নের উদাহরণগুলি ব্যবহার করতে যাচ্ছি।

উদাহরণ 1:

মঙ্গোডিবি শেল-এ '$max' অপারেটর কীভাবে কাজ করে তা নিয়ে আলোচনা করার জন্য উদাহরণ দিয়ে শুরু করে, আমাদের 'ডেটা' নামে একটি সংগ্রহ থাকতে হবে যা অবশ্যই তৈরি করা উচিত। এই সংগ্রহটি তৈরি করতে, আমাদের অবশ্যই কোনো 'তৈরি' নির্দেশনা ব্যবহার না করে সরাসরি এতে কিছু রেকর্ড যোগ করতে হবে। সন্নিবেশ নির্দেশ একটি সংগ্রহ তৈরি করতে এবং এতে রেকর্ড যোগ করার জন্য যথেষ্ট। আমরা ক্যোয়ারীতে 'insertMany' ফাংশনটি ব্যবহার করি চারটি রেকর্ড যোগ করার জন্য, প্রতিটিতে বিভিন্ন ধরনের 4টি ক্ষেত্র রয়েছে।

পরীক্ষা > db.data.insertঅনেক ( [ { 'আইডি' : এক , 'নাম' : 'ব্র্যাভো' , 'বেতন' : 65000 , 'বয়স' : 44 } ,
... { 'আইডি' : 2 , 'নাম' : 'স্টিফেন' , 'বেতন' : 77000 , 'বয়স' : 55 } ,
... { 'আইডি' : 3 , 'নাম' : 'মারিয়া' , 'বেতন' : 42000 , 'বয়স' : 27 } ,
... { 'আইডি' : 4 , 'নাম' : 'হকিন' , 'বেতন' : 58000 , 'বয়স' : 33 } ] )







সন্নিবেশ কমান্ড সফল এবং আউটপুট বার্তা দেখায় যে রেকর্ড যোগ করা হয়েছে।



আমাদের MongoDB-এর 'ডেটা' সংগ্রহে রেকর্ড ঢোকানোর পরে, শেলে সেই রেকর্ডগুলি দেখার সময় এসেছে। সুতরাং, আমরা JSON ফরম্যাটে ফলাফল প্রদর্শনের জন্য printjson আর্গুমেন্ট গ্রহণ করে, MongoDB Cli-এ “forEach()” ফাংশন অনুসরণ করে “find()” ফাংশন নির্দেশিকা চালাই। শেলের মধ্যে প্রদর্শিত ফলাফলটি সংগ্রহে মোট 4টি নথি দেখায় যা নিম্নলিখিত আউটপুট ছবিতে দেখানো হয়েছে:



পরীক্ষা > db.data.find ( ) .প্রতিটির জন্য ( প্রিন্টজসন )





ইতিমধ্যে সন্নিবেশিত রেকর্ডগুলি সংশোধন করতে MongoDB-এর আপডেট কমান্ডে '$max' অপারেটর ব্যবহার করে দেখুন। এইভাবে, UpdateOne() এখানে শুধুমাত্র একটি নির্দিষ্ট রেকর্ডের মত “ডেটা” সংগ্রহের একটি রেকর্ড পরিবর্তন করতে ব্যবহৃত হয় যেখানে “id” ক্ষেত্রের মান “2” থাকে। '$max' অপারেটরটি 'বেতন' ফিল্ডে 'ডেটা' সংগ্রহের 'বেতন' ক্ষেত্রে প্রয়োগ করা হয় তা পরীক্ষা করার জন্য 'বেতন' ক্ষেত্রের মান 55000-এর বেশি কিনা। যদি না হয়, তাহলে 55000 দিয়ে রেকর্ড আপডেট করুন। এর জন্য আউটপুট ফলাফল updateOne() ফাংশন ক্যোয়ারী যা রেকর্ড '2' হিসাবে একটি '0' পরিবর্তন গণনা দেখায় যার বেতন 55000 এর কম।

পরীক্ষা > db.data.updateOne ( { আইডি: 2 } , { সর্বোচ্চ $ : { বেতন: 55000 } } )



এই আপডেটের পরে, আমরা MongoDB কমান্ড-লাইন শেলে পরিবর্তিত ফলাফল প্রদর্শন করতে একই 'find()' ফাংশন কোয়েরি চেষ্টা করি। কিন্তু আমরা একই আউটপুট পাই যা আমরা 'আপডেট' নির্দেশনা ব্যবহার করার আগে পেয়েছি। কোন পরিবর্তন হয়নি কারণ 77000 এর মান 55000 এর থেকে বড়।

পরীক্ষা > db.data.find ( ) .প্রতিটির জন্য ( প্রিন্টজসন )

আসুন একই updateOne() ক্যোয়ারী আবার একটু পরিবর্তন করে চেষ্টা করি। এইবার, আমরা '77000' মানের থেকে '85000' বৃহত্তর মান চেষ্টা করি যা ইতিমধ্যেই 'ডেটা' সংগ্রহের 'বেতন' ক্ষেত্রে অবস্থান করছে আমাদের আউটপুটে একটি পার্থক্য করতে। আউটপুট এই বার পরিবর্তনের গণনা '1' দেখায় কারণ '85000' মানটি এই ক্যোয়ারীতে '$max' অপারেটরের কারণে তুলনা করার পরে ক্ষেত্রের মধ্যে '77000' এর আগে থেকে থাকা মানটিকে প্রতিস্থাপন করে৷

পরীক্ষা > db.data.updateOne ( { আইডি: 2 } , { সর্বোচ্চ $ : { বেতন: 85000 } } )

MongoDB-এর '$max' অপারেটরের মাধ্যমে '77000' এর ছোট মানটিকে '85000' এর নতুন মান দিয়ে সফলভাবে প্রতিস্থাপন করার পরে, আমরা অবশেষে এই আপডেটটি পরীক্ষা করার জন্য 'db' নির্দেশে 'find()' ফাংশন ব্যবহার করি, এটি সফলভাবে আপডেট করা হয়েছে কিনা। আউটপুট দেখায় যে এই সংগ্রহের 2য় রেকর্ডের 'বেতন' ক্ষেত্রের মান পুরোপুরি আপডেট করা হয়েছে।

পরীক্ষা > db.data.find ( ) .প্রতিটির জন্য ( প্রিন্টজসন )

উদাহরণ 2:

MongoDB-তে '$max' অপারেটর ব্যবহার করতে অন্য একটি উদাহরণে যাওয়া যাক। এইবার, আমরা “$max” অপারেটরকে গোষ্ঠীবদ্ধ করতে এবং একই ক্ষেত্রের মানগুলির জন্য কোনো সদৃশ থাকলে একটি সংগ্রহের অনন্য রেকর্ড প্রদর্শন করি। এর জন্য, আমরা একটি 'পরীক্ষা' ডাটাবেসের 'ডেটা' সংগ্রহে আরও 2টি রেকর্ড সন্নিবেশ করি। এই রেকর্ডগুলিতে 'নাম' ক্ষেত্রে 2টি একই মান রয়েছে যা ইতিমধ্যে ঢোকানো 4টি রেকর্ডে রয়েছে এবং বাকিগুলি আলাদা। রেকর্ডগুলি সন্নিবেশ করার জন্য, আমরা একই 'db' নির্দেশ ব্যবহার করি যাতে 'ডাটা' সংগ্রহ আপডেট করার জন্য এতে 'insertMany' ফাংশন রয়েছে।

পরীক্ষা > db.data.insertঅনেক ( [ { 'আইডি' : 5 , 'নাম' : 'ব্র্যাভো' , 'বেতন' : 35000 , 'বয়স' : চার পাঁচ } ,
{ 'আইডি' : 6 , 'নাম' : 'হকিন' , 'বেতন' : 67000 , 'বয়স' : 33 } ] )

নির্দেশ সফলভাবে কার্যকর করা হয়.

এখন যেহেতু 2টি নতুন রেকর্ড যোগ করা হয়েছে, আপনি 'db' নির্দেশে 'forEach' ফাংশন অনুসরণ করে একই 'find' ফাংশন ব্যবহার করে প্রদর্শন করতে পারেন। ছবিতে নিম্নলিখিত প্রদর্শন আউটপুট এই সংগ্রহের শেষে 2টি নতুন রেকর্ড দেখায়:

পরীক্ষা > db.data.find ( ) .প্রতিটির জন্য ( প্রিন্টজসন )

'ডেটা' সংগ্রহের 6টি রেকর্ড প্রদর্শন করার পরে, আমরা এটিতে সামগ্রিক কার্য সম্পাদন করতে প্রস্তুত। সুতরাং, 'সমষ্টি' ফাংশনটি নিম্নলিখিত তালিকাভুক্ত ক্যোয়ারীতে ব্যবহার করা হয়েছে। এই ফাংশনের সাহায্যে, আমরা 'আইডি' এবং 'বেতন' ক্ষেত্রের অনন্য নাম অনুসারে একটি 'ডেটা' সংগ্রহের রেকর্ড গোষ্ঠীবদ্ধ করতে '$গ্রুপ' অপারেটর ব্যবহার করি। '$max' অপারেটরটি রেকর্ডের 'বেতন' ক্ষেত্রে প্রয়োগ করা হয় যাতে সর্বাধিক মান প্রদর্শিত হয়। 'নাম' ক্ষেত্রের ডুপ্লিকেট নাম অনুসারে বেতন' ক্ষেত্র থেকে সর্বাধিক মূল্য পান যা এই গ্রুপিং প্রদর্শনের জন্য 'আইডি' হিসাবে ব্যবহৃত হয়। মোট 4টি রেকর্ড প্রদর্শিত হয়। সবচেয়ে ছোট মান (ডুপ্লিকেট রেকর্ড থেকে) উপেক্ষা করা হয় যখন সবচেয়ে বড় মান প্রদর্শিত হয়।

db.data.aggregate ( [ { $গ্রুপ : { _id: ' $Name ' , বেতন: { সর্বোচ্চ $ : ' $বেতন ' } } } ] )

উপসংহার

এই গাইডের প্রথম অনুচ্ছেদটি আপনাকে MongoDB-তে ব্যবহৃত অপারেটরগুলির গুরুত্ব বুঝতে সাহায্য করে, বিশেষ করে '$max' অপারেটর এবং MongoDB শেলে এর ব্যবহার। এই নির্দেশিকাটিতে দুটি কমান্ড-ভিত্তিক উদাহরণ রয়েছে যা '$max' অপারেটর এর উদ্দেশ্য প্রদর্শনের জন্য সম্পর্কিত। MongoDB চিত্রের মধ্য দিয়ে যাওয়া, আপনি ডাটাবেসে কিছু দরকারী লেনদেন সম্পাদন করতে সক্ষম হবেন, তা আগে থেকেই বিদ্যমান রেকর্ডটিকে একটি নতুন মান দিয়ে প্রতিস্থাপন করা বা '$max' অপারেটরের মাধ্যমে রেকর্ডগুলিকে গোষ্ঠীবদ্ধ করে প্রদর্শন করা।