এই অধ্যায়টি মংগোডিবি এগ্রিগেশন পাইপলাইন পরিচিত করা হয়েছে, এটি প্রায়ই পরিসংখ্যান বিশ্লেষণে ব্যবহৃত group by
বিবৃতিতের মতো SQL. মংগোডিবি শেলে, পরিসংখ্যান বিশ্লেষণ অর্থাৎ এগ্রিগেট হচ্ছে db.collection.aggregate()
ফাংশন দ্বারা সফলতাপূর্বক হাসিল করা হয়।
ধারণা
এগ্রিগেটেশন পাইপলাইন হচ্ছে একটি তাত্ত্বিক ধারণা যা তথ্যকে সেচের মত একটি পাইপলাইন থেকে পানি যে ভাবে চলতে দেখায়। আমরা পাইপলাইনের মধ্যে বেশিরভাগ পর্যায়ে তথ্যগুলিকে প্রসেস করতে পারি। একটি পর্যায়ে ডেটা প্রসেস করে, প্রসেস করা ফলাফলগুলি পরবর্তী পর্যায়ে চলে যায় আবার প্রসেসিং করার জন্য।
পরিস্কার বোঝানোর উদাহরণ:
- প্রথম পর্যায়ে, নির্দিষ্ট শর্তাধীন ভিত্তিকে সংগ্রহ থেকে দস্তাবেজ ডেটা পান।
- দ্বিতীয় পর্যায়ে, প্রাপ্ত দস্তাবেজ ডেটা গোষ্ঠীভূত এবং প্রতিষ্ঠাতিত করা হয়।
- তৃতীয় পর্যায়ে, দ্বিতীয় পর্যায়ে আগ্রেগেটেড ডেটা সারিবদ্ধ করা হয়।
সম্পূর্ণ প্রক্রিয়া একটি পাইপলাইন অপারেশনের মতো কোথাও হত যেখানে ডেটা একটি পাইপলাইনের এক পাশে প্রবেশ করে, বেশিরভাগ পর্যায়ে প্রসেসিং করে, এবং পরে একটি চূড়ান্ত ফলাফল উৎপন্ন করে।
মংগোডিবি পাইপলাইন সমর্থিত অপারেটর
নীচে মংগোডিবি দ্বারা সমর্থিত সাধারণ পাইপলাইন অপারেটরগুলি দেওয়া হয়েছে:
অপারেটর | বর্ণনা |
---|---|
$match | $সংগ্রহ পর্যায়ে শর্ত ভিত্তিতে দস্তাবেজ ডেটা ফিল্টার করতে ব্যবহৃত হয়, এটি প্রায়ই SQL এর where শর্ত এর মতো। |
$group | $গ্রূপ পর্যায়ে দস্তাবেজ ডেটা গোষ্ঠীভূত এবং প্রতিষ্ঠাতিত করতে ব্যবহৃত হয়, এটি প্রায়ই SQL এর group by মন্ডির এর মতো। |
$sort | ডেটা সাজানোর জন্য ব্যবহৃত হয়। |
এগ্রিগেশন পাইপলাইন ব্যবহারের পদক্ষেপ
সাধারণভাবে, তিনটি পদক্ষেপ শামিল:
- $match-এর মাধ্যমে লক্ষ্যভেদ ডেটা ফিল্টার করুন।
- $group-এর মাধ্যমে ডেটা গোষ্ঠীভূত এবং প্রতিষ্ঠাতিত করুন।
- $sort-এর মাধ্যমে ফলাফলগুলি সাজানো (ঐচ্ছিক)।
উদাহরণ:
db.orders.aggregate([
{ $match: { status: "A" } },
{ $group: { _id: "$cust_id", total: { $sum: "$amount" } } },
{ $sort: { total: -1 } }
])
সমতুল্য SQL:
select sum(amount) as total from orders
where status="A"
group by cust_id
order by total desc
দ্রষ্টব্য: অগ্রগব্য পরিসংখ্যান বিশ্লেষণে অধিক তথ্যের জন্য অনুগ্রহ করে পরবর্তী অধ্যায়গুলির জন্য দয়া করে দেখুন।