কম্পিউটার টিউটোরিয়াল

MongoDB-এ ভিউ (View) তৈরির পদ্ধতি

MongoDB-এ ভিউ (View) তৈরি করতে createView() মেথড ব্যবহার করা হয়। ভিউ হলো একটি ভার্চুয়াল কালেকশন যা অন্য কালেকশনের ওপর অ্যাগ্রিগেশন পাইপলাইন ডিফাইন করে থাকে - ফিজিক্যালি ডেটা স্টোর করে না।

কলেকশন এবং ডকুমেন্ট তৈরি

> db.demo113.insertOne({
...   _id: 1,
...   StudentId: "101",
...   "Details": { Name: "Chris", Age: 21 },
...   Subject: "MySQL"
... });
{ "acknowledged" : true, "insertedId" : 1 }

সব ডকুমেন্ট দেখানো

> db.demo113.find().pretty();

আউটপুট:

{ "_id" : 1, "StudentId" : "101", "Details" : { "Name" : "Chris", "Age" : 21 }, "Subject" : "MySQL" }

ভিউ তৈরির কোয়ারী

createView মেথডে ভিউ নাম, সোর্স কালেকশন, এবং অ্যাগ্রিগেশন পাইপলাইন দেওয়া হয়েছে:

> db.createView(
...   "firstView",
...   "demo113",
...   [ { $project: { "Name": "$Details.Name", Subject: 1 } } ]
... );
{ "ok" : 1 }

ভিউ থেকে ডেটা ফেচ করা

> db.firstView.find();

আউটপুট:

{ "_id" : 1, "Subject" : "MySQL", "Name" : "Chris" }

ব্যাখ্যা:

  • firstView - ভিউর নাম
  • demo113 - সোর্স কালেকশন
  • [{ $project: { "Name": "$Details.Name", Subject: 1 } }] - পাইপলাইন: নেস্টেড Details.Name কে টপ-লেভেল Name বানানো এবং Subject রাখা

ভিউয়ের বৈশিষ্ট্য:

  • রিড-অনলি: ভিউতে সরাসরি ইনসার্ট/আপডেট/ডিলিট করা যায় না
  • রিয়েল-টাইম: সোর্স কালেকশন চেঞ্জ হলে ভিউও অটোমেটিক আপডেট হয়
  • নো স্টোরেজ: ডেটা ডুপ্লিকেট হয় না, কোয়েরি টাইমে কম্পিউট হয়
  • সিকিউরিটি: সংবেদনশীল ফিল্ড হাইড করে লিমিটেড ফিল্ড এক্সপোজ করতে ব্যবহার করা হয়

ভিউ লিস্ট করা: db.getCollectionInfos({type: "view"})

ভিউ ড্রপ করা: db.firstView.drop()

পারফরম্যান্স নোট: ভিউর ওপর ইনডেক্স তৈরি করা যায় না। কমপ্লেক্স পাইপলাইনের জন্য সোর্স কালেকশনে প্রপার ইনডেক্স থাকা জরুরি।

  1. MongoDB-এ ({$natural: 1}) সর্ট অর্ডার বোঝা

  2. MongoDB-তে হায়ারার্কিক্যাল JSON ডকুমেন্ট তৈরি করা

  3. MongoDB-তে find()-এ প্রজেকশন দিয়ে _id ফিল্ড হাইড করা

  4. ধাপে ধাপ গাইড: MongoDB Atlas ডাটাবেস তৈরি ও সংযোগ