इस अध्याय में MongoDB Aggregation Pipeline का परिचय दिया गया है, जो मुख्य रूप से सांख्यिकीय विश्लेषण के लिए उपयोग किया जाता है, जैसा कि SQL में group by
स्टेटमेंट का उपयोग किया जाता है। MongoDB shell में, सांख्यिकीय विश्लेषण db.collection.aggregate()
फ़ंक्शन के माध्यम से प्राप्त किया जाता है।
अवधारणा
Aggregation Pipeline एक अन्य संकेत है जो डेटा को एक पाइपलाइन के रूप में बहते हुए प्रसंस्करण करता है। हम पाइपलाइन के भीतर डेटा को कई चरणों में प्रसंस्करण कर सकते हैं। एक चरण जब डेटा का प्रसंस्करण करता है, तो प्रसंस्कृत परिणाम अगले चरण को और प्रसंस्करण के लिए भेज दिए जाते हैं।
सांख्यिकीय विश्लेषण में Aggregation Pipeline का उपयोग करने के उदाहरण:
- पहले चरण में, निश्चित स्थितियों पर आधारित कलेक्शन से एक बैच डॉक्यूमेंट डेटा प्राप्त किया जाता है।
- दूसरे चरण में, प्राप्त डॉक्यूमेंट डेटा को समूहित और सांख्यिकीय रूप में प्रसंस्कृत किया जाता है।
- तीसरे चरण में, दूसरे चरण से सांख्यिकीय रूप से प्रसंस्कृत डेटा को क्रमबद्ध किया जाता है।
सम्पूर्ण प्रक्रिया एक पाइपलाइन प्रक्रिया की तरह है जहां डेटा एक पाइपलाइन के एक सिरे से आता है, कई चरणों के माध्यम से प्रसंस्कृत होता है, और फिर अंतिम परिणाम उत्पन्न होता है।
MongoDB Pipeline समर्थित ऑपरेटर
निम्नलिखित हैं MongoDB द्वारा समर्थित सामान्य पाइपलाइन ऑपरेटर:
ऑपरेटर | विवरण |
---|---|
$match | $match चरण का उपयोग शर्तों के आधार पर डॉक्यूमेंट डेटा को फ़िल्टर करने के लिए किया जाता है, जिसमें SQL में where शर्त के सामान्य है। |
$group | $group चरण का उपयोग डॉक्यूमेंट डेटा को समूहित करने और सांख्यिकीय रूप से प्रसंस्कृत करने के लिए किया जाता है, जिसमें SQL में group by शर्त के सामान्य है। |
$sort | डेटा को क्रमबद्ध करने के लिए उपयोग किया जाता है। |
Aggregation Pipeline का उपयोग करने के लिए चरण
सामान्यतः, निम्नलिखित तीन चरण शामिल होते हैं:
- $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
नोट: सांख्यिकीय विश्लेषण के अधिक जानकारी के लिए, कृपया आगामी अध्यायों पर संदर्भित करें।