মঙ্গোডিবিতে কীভাবে একটি অনন্য সূচক তৈরি করবেন

Mangodibite Kibhabe Ekati Anan Ya Sucaka Tairi Karabena



MongoDB-তে, একটি অনন্য সূচক নিশ্চিত করে যে একটি নির্দিষ্ট ক্ষেত্র বা একটি সংগ্রহের মধ্যে ক্ষেত্রগুলির গ্রুপের প্রতিটি মান অনন্য। createIndex() পদ্ধতি ব্যবহার করে, আমরা নির্দিষ্ট সংগ্রহের জন্য একটি অনন্য সূচক ক্ষেত্র তৈরি করতে পারি। ডেটা অখণ্ডতা বজায় রাখার উদ্দেশ্যে এবং গুরুত্বপূর্ণ ক্ষেত্রে নকল এন্ট্রি এড়ানোর উদ্দেশ্যে, অনন্য সূচকগুলি সহায়ক। নিবন্ধটি নির্দিষ্ট সংগ্রহের জন্য একটি অনন্য সূচক তৈরি করার উপায়গুলি কভার করেছে। db.candidates.insertMany([

{ নাম: 'আলেক্সা বিল' , শ্রেণী: 'ক' , অবশ্যই: 'অজগর' },

{ নাম: 'জেন মার্কস' , শ্রেণী: 'বি' , অবশ্যই: 'জাভা' },

{ নাম: 'পল কেন' , শ্রেণী: 'গ' , অবশ্যই: 'সি#' },

{ নাম: 'এমিলি জিও' , শ্রেণী: 'ডি' , অবশ্যই: 'php' }

]);

আমরা একটি অনন্য সূচক ক্ষেত্র তৈরি করতে পারি যখন সংগ্রহটি এর ভিতরে কিছু নথি সহ উপস্থিত থাকে। এর জন্য, আমরা নতুন সংগ্রহে নথিটি সন্নিবেশ করি যা 'প্রার্থী' যাদের সন্নিবেশের জন্য জিজ্ঞাসা নিম্নরূপ দেওয়া হয়েছে:







উদাহরণ 1: একটি একক ক্ষেত্রের একটি অনন্য সূচক তৈরি করুন

আমরা createIndex() পদ্ধতি ব্যবহার করে সূচী তৈরি করতে পারি এবং আমরা বুলিয়ান 'true' এর সাথে অনন্য বিকল্পটি নির্দিষ্ট করে সেই ক্ষেত্রটিকে অনন্য করতে পারি।



db.candidates.createIndex( { গ্রেড: 1 }, { অনন্য: সত্য } )

এখানে, আমরা একটি নির্দিষ্ট ক্ষেত্রের একটি অনন্য সূচক তৈরি করতে 'প্রার্থী' সংগ্রহে createIndex() পদ্ধতি শুরু করি। তারপর, আমরা সূচক স্পেসিফিকেশনের জন্য '1' এর মান সহ 'গ্রেড' ক্ষেত্র প্রদান করি। এখানে “1”-এর মান সংগ্রহের ঊর্ধ্বমুখী সূচককে উপস্থাপন করে। এর পরে, 'গ্রেড' ক্ষেত্রের স্বতন্ত্রতা প্রয়োগ করতে আমরা 'সত্য' মান সহ 'অনন্য' বিকল্পটি নির্দিষ্ট করি।



আউটপুট প্রতিনিধিত্ব করে যে 'গ্রেড' ক্ষেত্রের অনন্য সূচকটি 'প্রার্থী' সংগ্রহের জন্য তৈরি করা হয়েছে:





উদাহরণ 2: একের বেশি ক্ষেত্রের একটি অনন্য সূচক তৈরি করুন

পূর্ববর্তী উদাহরণে, শুধুমাত্র একটি একক ক্ষেত্র একটি অনন্য সূচক হিসাবে তৈরি করা হয়েছে। কিন্তু আমরা createIndex() পদ্ধতি ব্যবহার করে একই সাথে একটি অনন্য সূচক হিসাবে দুটি ক্ষেত্র তৈরি করতে পারি।



db.candidates.createIndex( { গ্রেড: 1 , অবশ্যই: 1 }, { অনন্য: সত্য } )

এখানে, আমরা একই 'প্রার্থী' সংগ্রহে createIndex() পদ্ধতিকে কল করি। আমরা createIndex() পদ্ধতিতে দুটি ক্ষেত্র নির্দিষ্ট করি - 'গ্রেড' এবং 'কোর্স' - প্রথম এক্সপ্রেশন হিসাবে '1' এর মান সহ। তারপর, আমরা এই দুটি অনন্য ক্ষেত্র তৈরি করতে 'সত্য' মান সহ অনন্য বিকল্প সেট করি।

আউটপুট নিম্নলিখিত 'প্রার্থী' সংগ্রহের জন্য দুটি অনন্য সূচক, 'গ্রেড_1' এবং 'কোর্স_1' উপস্থাপন করে:

উদাহরণ 3: ক্ষেত্রগুলির একটি যৌগিক অনন্য সূচক তৈরি করুন

যাইহোক, আমরা একই সংগ্রহের মধ্যে একই সাথে একটি অনন্য যৌগিক সূচক তৈরি করতে পারি। আমরা নিম্নলিখিত প্রশ্নের মাধ্যমে এটি অর্জন করি:

db.candidates.createIndex( { নাম: 1 , শ্রেণী: 1 , অবশ্যই: 1 }, { অনন্য: সত্য }

'প্রার্থী' সংগ্রহের জন্য যৌগিক অনন্য সূচক তৈরি করতে আমরা আবার createIndex() পদ্ধতি ব্যবহার করি। এইবার, আমরা তিনটি ক্ষেত্র পাস করি - 'গ্রেড', 'নাম' এবং 'কোর্স' - যা 'প্রার্থী' সংগ্রহের জন্য আরোহী সূচক ক্ষেত্র হিসাবে কাজ করে। এর পরে, ক্ষেত্রটিকে অনন্য করার জন্য আমরা 'অনন্য' বিকল্পটিকে কল করি কারণ সেই বিকল্পের বিপরীতে 'সত্য' বরাদ্দ করা হয়েছে।

আউটপুট ফলাফলগুলি প্রদর্শন করে যা দেখায় যে তিনটি ক্ষেত্রই এখন নির্দিষ্ট সংগ্রহের অনন্য সূচক:

উদাহরণ 4: ডুপ্লিকেট ক্ষেত্র মানগুলির একটি অনন্য সূচক তৈরি করুন

এখন, আমরা ডুপ্লিকেট ক্ষেত্রের মানের জন্য অনন্য সূচক তৈরি করার চেষ্টা করি যা স্বতন্ত্রতা সীমাবদ্ধতা বজায় রাখতে একটি ত্রুটি ট্রিগার করে।

db.candidates.createIndex({নাম: 1 },{অনন্য:সত্য})

এখানে, আমরা অনুরূপ মান ধারণকারী ক্ষেত্রের জন্য অনন্য সূচক মানদণ্ড প্রয়োগ করি। CreateIndex() পদ্ধতির ভিতরে, আমরা '1' মান সহ 'নাম' ফিল্ডটিকে একটি অনন্য সূচক তৈরি করতে এবং 'সত্য' মান সহ অনন্য বিকল্পটিকে সংজ্ঞায়িত করতে কল করি। যেহেতু দুটি নথিতে অভিন্ন মান সহ 'নাম' ক্ষেত্র রয়েছে, তাই আমরা এই ক্ষেত্রটিকে 'প্রার্থী' সংগ্রহের একটি অনন্য সূচক করতে পারি না। ডুপ্লিকেট কী ত্রুটিটি ক্যোয়ারী চালানোর সময় ট্রিগার হয়।

প্রত্যাশিত হিসাবে, আউটপুট ফলাফল তৈরি করে কারণ নামের ক্ষেত্রের দুটি ভিন্ন নথির জন্য একই মান রয়েছে:

এইভাবে, আমরা নথিতে প্রতিটি 'নাম' ক্ষেত্রের একটি অনন্য মান দিয়ে 'প্রার্থী' সংগ্রহ আপডেট করি এবং তারপর অনন্য সূচক হিসাবে 'নাম' ক্ষেত্র তৈরি করি। সেই ক্যোয়ারীটি কার্যকর করা সাধারণত 'নাম' ক্ষেত্রটিকে অনন্য সূচক হিসাবে নিম্নলিখিত হিসাবে দেখানো হয়েছে:

উদাহরণ 5: একটি অনুপস্থিত ক্ষেত্রের একটি অনন্য সূচক তৈরি করুন

বিকল্পভাবে, আমরা ক্ষেত্রটিতে createIndex() পদ্ধতি প্রয়োগ করি যা সংগ্রহের কোনো নথিতে বিদ্যমান নেই। ফলস্বরূপ, সূচকটি সেই ক্ষেত্রের বিপরীতে একটি শূন্য মান সঞ্চয় করে, এবং ক্ষেত্রের মান লঙ্ঘনের কারণে অপারেশন ব্যর্থ হয়।

db.candidates.createIndex( { ইমেল: 1 }, { অনন্য: সত্য } )

এখানে, আমরা createIndex() পদ্ধতি ব্যবহার করি যেখানে 'email' ক্ষেত্রটি '1' এর মান দিয়ে দেওয়া হয়। 'ইমেল' ক্ষেত্রটি 'প্রার্থী' সংগ্রহে বিদ্যমান নেই এবং আমরা 'প্রার্থী' সংগ্রহের জন্য অনন্য বিকল্পটিকে 'সত্য' তে সেট করে এটিকে একটি অনন্য সূচক করার চেষ্টা করি।

যখন এটির জন্য ক্যোয়ারী চালানো হয়, আমরা আউটপুটে ত্রুটি পাই কারণ 'প্রার্থী' সংগ্রহে 'ইমেল' ক্ষেত্রটি অনুপস্থিত:

উদাহরণ 6: একটি স্পার্স বিকল্প সহ একটি ক্ষেত্রের একটি অনন্য সূচক তৈরি করুন

এর পরে, স্পার্স বিকল্প দিয়ে অনন্য সূচক তৈরি করা যেতে পারে। একটি স্পার্স ইনডেক্সের কার্যকারিতা হল যে এটিতে সূচীকৃত ক্ষেত্র নেই এমন নথিগুলি বাদ দিয়ে শুধুমাত্র সেই নথিগুলিকে অন্তর্ভুক্ত করে। আমরা স্পার্স বিকল্প সেটআপ করার জন্য নিম্নলিখিত কাঠামো প্রদান করেছি:

db.candidates.createIndex( { কোর্স : 1 },

{ নাম: 'অনন্য_স্পার্স_কোর্স_সূচক' , অনন্য: সত্য, বিক্ষিপ্ত: সত্য })

এখানে, আমরা createIndex() পদ্ধতি প্রদান করি যেখানে 'course' ফিল্ড '1' এর মান দিয়ে সেট করা আছে। এর পরে, আমরা একটি অনন্য সূচক ক্ষেত্র সেট করার জন্য অতিরিক্ত বিকল্পটি নির্দিষ্ট করি যা 'কোর্স'। বিকল্পগুলির মধ্যে 'নাম' অন্তর্ভুক্ত রয়েছে যা 'অনন্য_স্পার্স_কোর্স_ইনডেক্স' সূচক সেট করে। তারপর, আমাদের কাছে 'অনন্য' বিকল্প রয়েছে যা 'সত্য' মান দিয়ে নির্দিষ্ট করা হয়েছে এবং 'স্পার্স' বিকল্পটিও 'সত্য' তে সেট করা হয়েছে।

আউটপুট 'কোর্স' ক্ষেত্রে একটি অনন্য এবং বিক্ষিপ্ত সূচক তৈরি করে যা নিম্নলিখিত হিসাবে দেখানো হয়েছে:

উদাহরণ 7: GetIndexes() পদ্ধতি ব্যবহার করে তৈরি করা অনন্য সূচক দেখান

পূর্ববর্তী উদাহরণে, প্রদান করা সংগ্রহের জন্য শুধুমাত্র একটি অনন্য সূচক তৈরি করা হয়েছিল। 'প্রার্থী' সংগ্রহের জন্য অনন্য সূচকের তথ্য দেখতে এবং পেতে, আমরা নিম্নলিখিত getIndexes() পদ্ধতি ব্যবহার করি:

db.candidates.getIndexes();

এখানে, আমরা “প্রার্থী” সংগ্রহের getIndexes() ফাংশনকে কল করি। getIndexes() ফাংশন 'প্রার্থী' সংগ্রহের জন্য সমস্ত সূচী ক্ষেত্র প্রদান করে যা আমরা পূর্ববর্তী উদাহরণগুলিতে তৈরি করেছি।

আউটপুট অনন্য সূচকটি প্রদর্শন করে যা আমরা সংগ্রহের জন্য তৈরি করেছি: হয় একটি অনন্য সূচক, যৌগিক সূচক বা অনন্য স্পার্স সূচক:

উপসংহার

আমরা সংগ্রহের নির্দিষ্ট ক্ষেত্রগুলির জন্য একটি অনন্য সূচক তৈরি করার চেষ্টা করেছি। আমরা একটি একক ক্ষেত্র এবং একাধিক ক্ষেত্রের জন্য একটি অনন্য সূচক তৈরি করার বিভিন্ন উপায় অনুসন্ধান করেছি৷ আমরা একটি অনন্য সূচক তৈরি করার চেষ্টা করেছি যেখানে একটি অনন্য সীমাবদ্ধতা লঙ্ঘনের কারণে অপারেশন ব্যর্থ হয়।