इस आसान गाइड की मदद से MongoDB क्वेरीज़ और संचालन को समझें।
MongoDB व्यावसायिक विकास के लिए सबसे वांछित और प्रशंसित NoSQL डेटाबेस में से एक है। इसका लचीलापन, मापनीयता और बड़ी मात्रा में डेटा को संभालने की क्षमता इसे आधुनिक अनुप्रयोगों के लिए शीर्ष विकल्प बनाती है। यदि आप MongoDB की नियमित क्वेरीज़ और संचालन में महारत हासिल करना चाहते हैं, तो आप सही जगह पर हैं।
चाहे आप डेटा को कुशलतापूर्वक पुनर्प्राप्त और हेरफेर करना चाहते हों, मजबूत डेटा मॉडल लागू करना चाहते हों, या प्रतिक्रियाशील निर्माण करना चाहते हों एप्लिकेशन, सामान्य MongoDB प्रश्नों और परिचालनों की गहरी समझ प्राप्त करने से निस्संदेह आपका विकास होगा कौशल।
1. डेटाबेस बनाएँ या स्विच करें
MongoDB शेल के माध्यम से स्थानीय रूप से डेटाबेस बनाना सीधा है, खासकर यदि आपने एक दूरस्थ क्लस्टर स्थापित किया है। आप MongoDB में एक नया डेटाबेस बना सकते हैं उपयोग आज्ञा:
use db_name
जबकि उपरोक्त कमांड एक नया डेटाबेस बनाता है, आप इसका उपयोग स्क्रैच से नया डेटाबेस बनाए बिना मौजूदा डेटाबेस पर स्विच करने के लिए कर सकते हैं।
2. डेटाबेस ड्रॉप करें
सबसे पहले, उस डेटाबेस पर स्विच करें जिसका उपयोग करके आप ड्रॉप करना चाहते हैं
उपयोग आदेश जैसा कि पहले किया गया था। फिर डेटाबेस का उपयोग करके ड्रॉप करें ड्रॉपडेटाबेस() आज्ञा:use db_name
db.dropDatabase()
3. एक संग्रह बनाएँ
संग्रह बनाने के लिए, लक्ष्य डेटाबेस पर स्विच करें। उपयोग संग्रह बनाएं() नया MongoDB संग्रह बनाने के लिए कीवर्ड:
db.createCollection("collection_name")
प्रतिस्थापित करें संग्रह_नाम आपके चुने हुए संग्रह नाम के साथ.
4. किसी संग्रह में दस्तावेज़ सम्मिलित करें
किसी संग्रह में डेटा भेजते समय, आप एक दस्तावेज़ या दस्तावेज़ों की एक श्रृंखला सम्मिलित कर सकते हैं।
एकल दस्तावेज़ सम्मिलित करने के लिए:
db.collection_name.insertOne({"Name":"Idowu", "Likes":"Chess"})
आप एक आईडी के साथ दस्तावेज़ों की एक श्रृंखला सम्मिलित करने के लिए उपरोक्त विधि का भी उपयोग कर सकते हैं:
db.collection_name.insertOne([{"Name":"Idowu", "Likes":"Chess"}, {"Language": "Mongo", "is_admin": true}])
एक साथ कई दस्तावेज़ सम्मिलित करने के लिए, प्रत्येक की अलग-अलग आईडी होने पर, इसका उपयोग करें अनेक सम्मिलित करें कीवर्ड:
db.collection_name.insertMany([{"Name":"Idowu", "Likes":"Chess"}, {"Name": "Paul", "Likes": "Wordle"}])
5. एक संग्रह से सभी दस्तावेज़ प्राप्त करें
आप इसका उपयोग करके किसी संग्रह से सभी दस्तावेज़ों को क्वेरी कर सकते हैं खोजो() कीवर्ड:
db.collection_name.find()
उपरोक्त निर्दिष्ट संग्रह के अंदर सभी दस्तावेज़ लौटाता है:
आप लौटाए गए डेटा को एक विशिष्ट संख्या तक भी सीमित कर सकते हैं। उदाहरण के लिए, आप केवल पहले दो दस्तावेज़ प्राप्त करने के लिए निम्न आदेश का उपयोग कर सकते हैं:
db.collection_name.find().limit(2)
6. किसी संग्रह में दस्तावेज़ फ़िल्टर करें
MongoDB में दस्तावेज़ों को फ़िल्टर करने के कई तरीके हैं। उदाहरण के लिए, निम्नलिखित डेटा पर विचार करें:
यदि किसी दस्तावेज़ में केवल एक विशिष्ट फ़ील्ड की क्वेरी की जा रही है, तो इसका उपयोग करें खोजो तरीका:
db.collection_name.find({"Likes":"Wordle"}, {"_id":0, "Name":1})
उपरोक्त सभी दस्तावेज़ लौटाता है जहाँ का मूल्य है पसंद है है Wordle. यह केवल नाम आउटपुट करता है और दस्तावेज़ आईडी को अनदेखा करता है।
आप किसी संग्रह को संख्यात्मक कारक के आधार पर भी फ़िल्टर कर सकते हैं। मान लें कि आप 21 वर्ष से अधिक उम्र के सभी उपयोगकर्ताओं के नाम प्राप्त करना चाहते हैं, तो इसका उपयोग करें $gt ऑपरेटर:
db.collection_name.find({"Likes":"Chess", "Age":{"$gt":21}}, {"_id":0, "Name":1})
आउटपुट इस प्रकार दिखता है:
प्रतिस्थापित करने का प्रयास करें खोजो साथ ढूँढो एक देखना क्या होता है. हालाँकि, कई अन्य फ़िल्टरिंग कीवर्ड भी हैं:
- $lt: सभी मान निर्दिष्ट मान से कम हैं।
- $gte: निर्दिष्ट मान के बराबर या उससे अधिक।
- $एलटीई: वे मान जो परिभाषित मान से कम या उसके बराबर हैं।
- $eq: सभी मान निर्दिष्ट मान के बराबर हो जाते हैं।
- $ने: सभी मान निर्दिष्ट मान के बराबर नहीं हैं।
- $में: किसी सरणी के आधार पर क्वेरी करते समय इसका उपयोग करें। यह सरणी में किसी भी आइटम से मेल खाने वाले सभी मान प्राप्त करता है। $निन कीवर्ड इसके विपरीत कार्य करता है।
7. क्वेरीज़ को क्रमबद्ध करें
क्रमबद्ध करने से क्वेरी को एक विशिष्ट क्रम में व्यवस्थित करने में मदद मिलती है। आप अवरोही या आरोही क्रम में क्रमबद्ध कर सकते हैं। ध्यान रखें कि सॉर्टिंग के लिए संख्यात्मक संदर्भ की आवश्यकता होती है।
उदाहरण के लिए, आरोही क्रम में क्रमबद्ध करने के लिए:
db.collection_name.find({"Likes":"Chess"}).sort({"Age":1})
उपरोक्त क्वेरी को अवरोही क्रम में हल करने के लिए, "1" को "-1" से बदलें।
db.collection_name.find({"Likes":"Chess"}).sort({"Age":-1})
8. किसी दस्तावेज़ को अद्यतन करें
MongoDB अपडेट के लिए परमाणु ऑपरेटरों को यह निर्दिष्ट करने की आवश्यकता होती है कि आप अपडेट कैसे करना चाहते हैं। यहां आमतौर पर उपयोग किए जाने वाले परमाणु ऑपरेटरों की एक सूची दी गई है जिन्हें आप अपडेट क्वेरी के साथ जोड़ सकते हैं:
- $सेट: एक नया फ़ील्ड जोड़ें या मौजूदा फ़ील्ड बदलें।
- $धकेलें: किसी सरणी में एक नया आइटम डालें। इसके साथ युग्मित करें $प्रत्येक ऑपरेटर को एक साथ कई आइटम डालने होंगे।
- $खींचो: किसी सरणी से कोई आइटम निकालें. इसके साथ प्रयोग करें $में एक बार में कई आइटम हटाने के लिए.
- $असेट: किसी दस्तावेज़ से फ़ील्ड हटाएँ.
किसी दस्तावेज़ को अद्यतन करने और एक नया फ़ील्ड जोड़ने के लिए, उदाहरण के लिए:
db.collection_name.updateOne({"Name":"Sandy"}, {"$set":{"Name":"James", "email":"[email protected]"}})
उपरोक्त निर्दिष्ट दस्तावेज़ को अद्यतन करता है जैसा कि दिखाया गया है:
ईमेल फ़ील्ड को हटाना सीधा है $असेट ऑपरेटर:
db.collection_name.updateOne({"Name":"Sandy"}, {"$unset":{"email":"[email protected]"}})
निम्नलिखित नमूना डेटा पर विचार करें:
आप किसी आइटम को मौजूदा में सम्मिलित कर सकते हैं सामान का उपयोग करके सरणी फ़ील्ड $धकेलें ऑपरेटर:
db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items":"Plantain"}})
यहाँ आउटपुट है:
उपयोग $प्रत्येक ऑपरेटर एक साथ कई आइटम सम्मिलित करने के लिए:
db.collection_name.updateOne({"Name":"Pete"}, {"$push":{"items": {"$each":["Almond", "Melon"]}}})
यहाँ आउटपुट है:
जैसा कि उल्लेख किया गया है, $खींचो ऑपरेटर किसी सरणी से एक आइटम हटाता है:
db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items":"Plantain"}})
अद्यतन डेटा इस प्रकार दिखता है:
शामिल करें $में एक बार में किसी सरणी में कई आइटम हटाने के लिए कीवर्ड:
db.collection_name.updateOne({"Name":"Pete"}, {"$pull":{"items": {"$in":["Almond", "Melon"]} }})
9. किसी दस्तावेज़ या फ़ील्ड को हटाएँ
deleteOne या अनेक हटाएं कीवर्ड किसी संग्रह से किसी दस्तावेज़ को मिटा देता है। उपयोग deleteOne किसी निर्दिष्ट फ़ील्ड के आधार पर किसी दस्तावेज़ को हटाने के लिए:
db.collection_name.deleteOne({"Name":"IDNoble"})
यदि आप समान कुंजियों वाले कई दस्तावेज़ों को हटाना चाहते हैं, तो इसका उपयोग करें अनेक हटाएं बजाय। नीचे दी गई क्वेरी सभी दस्तावेज़ों को हटा देती है शतरंज वहां की तरह पसंद है.
db.collection.deleteMany({"Likes":"Chess"})
10. अनुक्रमणिका संचालन
MongoDB को स्कैन करने के लिए आवश्यक दस्तावेज़ों की संख्या को सुव्यवस्थित करके अनुक्रमण क्वेरी प्रदर्शन में सुधार करता है। जिन फ़ील्ड्स पर आप अधिक बार क्वेरी करते हैं, उन पर एक इंडेक्स बनाना अक्सर सबसे अच्छा होता है।
MongoDB अनुक्रमण आपके जैसा ही है SQL क्वेरीज़ को अनुकूलित करने के लिए इंडेक्स का उपयोग करें. उदाहरण के लिए, पर एक आरोही सूचकांक बनाने के लिए नाम मैदान:
db.collection.createIndex({"Name":1})
अपनी अनुक्रमणिका सूचीबद्ध करने के लिए:
db.collection.getIndexes()
उपरोक्त केवल एक प्रस्तावना है. इसके लिए और भी कई तरीके हैं MongoDB में एक इंडेक्स बनाना.
11. एकत्रीकरण
एकत्रीकरण पाइपलाइन, MapReduce का एक उन्नत संस्करण, आपको MongoDB के अंदर से जटिल गणनाओं को चलाने और संग्रहीत करने की अनुमति देता है। MapReduce के विपरीत, जिसके लिए मैप और रिड्यूस फ़ंक्शंस को अलग-अलग लिखने की आवश्यकता होती है जावास्क्रिप्ट कार्य, एकत्रीकरण सीधा है और केवल अंतर्निहित MongoDB विधियों का उपयोग करता है।
उदाहरण के लिए, निम्नलिखित बिक्री डेटा पर विचार करें:
MongoDB के एकत्रीकरण का उपयोग करके, आप प्रत्येक श्रेणी के लिए बेचे गए उत्पादों की कुल संख्या की गणना और भंडारण निम्नानुसार कर सकते हैं:
db.sales.aggregate([{$group:{"_id":"$Section", "totalSold":{$sum:"$Sold"}}}, {$project:{"_id":0, "totalSold":1, "Section":"$_id"}}])
उपरोक्त क्वेरी निम्नलिखित लौटाती है:
मास्टर MongoDB क्वेरीज़
MongoDB कई क्वेरी विधियाँ प्रदान करता है, जिसमें क्वेरी प्रदर्शन को बेहतर बनाने की सुविधाएँ भी शामिल हैं। आपकी प्रोग्रामिंग भाषा के बावजूद, उपरोक्त क्वेरी संरचनाएं MongoDB डेटाबेस के साथ इंटरैक्ट करने के लिए प्राथमिक हैं।
हालाँकि, आधार सिंटैक्स में कुछ विसंगतियाँ हो सकती हैं। उदाहरण के लिए, जबकि पायथन जैसी कुछ प्रोग्रामिंग भाषाएं सांप के मामलों को पहचानती हैं, जावास्क्रिप्ट सहित अन्य, ऊंट मामले का उपयोग करती हैं। सुनिश्चित करें कि आप शोध करें कि आपकी चुनी हुई तकनीक के लिए क्या काम करता है।