MongoDB एक NoSQL डेटाबेस है। NoSQL . के अंतर्गत छाता हम उन सभी डेटाबेस को डालते हैं जो डेटा को क्वेरी करने के लिए SQL भाषा का उपयोग नहीं करते हैं।
MongoDB की प्रमुख विशेषताएं
MongoDB एक बहुत ही जावास्क्रिप्ट-अनुकूल डेटाबेस है। यह एक जावास्क्रिप्ट एपीआई को उजागर करता है जिसका उपयोग हम डेटाबेस और वस्तुओं का संग्रह बनाने के लिए कर सकते हैं (जिन्हें दस्तावेज़ कहा जाता है) )।
यह स्कीमलेस है , जिसका अर्थ है कि आपको डेटा को संग्रहीत करने से पहले किसी संरचना को पूर्व-परिभाषित करने की आवश्यकता नहीं है।
MongoDB में आप इस ऑब्जेक्ट को बनाने वाले विशेष फ़ील्ड और उन्हें स्टोर करने के तरीके के बारे में चिंता किए बिना किसी ऑब्जेक्ट को स्टोर कर सकते हैं। आप MongoDB को उस ऑब्जेक्ट को स्टोर करने के लिए कहते हैं।
डेटा को JSON के समान प्रारूप में संग्रहीत किया जाता है, लेकिन इसे केवल बुनियादी डेटा प्रकारों से अधिक संग्रहीत करने की अनुमति देने के लिए बढ़ाया जाता है।
इंस्टॉलेशन
आइए आगे बढ़ते हैं और MongoDB स्थापित करते हैं। आप कई क्लाउड प्रदाताओं में से एक का उपयोग कर सकते हैं जो MongoDB इंस्टेंस तक पहुंच प्रदान करते हैं, लेकिन सीखने के लिए, हम इसे स्वयं इंस्टॉल करेंगे।
मैं एक मैक का उपयोग करता हूं, इसलिए इस ट्यूटोरियल में इंस्टॉलेशन निर्देश उस ऑपरेटिंग सिस्टम को संदर्भित करते हैं।
टर्मिनल खोलें और चलाएं:
brew tap mongodb/brew
brew install mongodb-community
बस।
निर्देश बहुत लंबे या जटिल नहीं थे, यह मानते हुए कि आप टर्मिनल का उपयोग करना और Homebrew को कैसे स्थापित करना जानते हैं।
स्थापना हमें यह बताती है:
To have launchd start mongodb now and restart at login:
brew services start mongodb-community
Or, if you don't want/need a background service you can just run:
mongod --config /usr/local/etc/mongod.conf
आप या तो एक बार MongoDB लॉन्च करना चुन सकते हैं और इसे अपने कंप्यूटर में एक पृष्ठभूमि सेवा के रूप में हमेशा के लिए चलाना चाहते हैं (वह चीज़ जो मुझे पसंद है), या आप इसे बाद वाले कमांड को चलाकर बस जरूरत पड़ने पर चला सकते हैं।
MongoDB के लिए डिफ़ॉल्ट कॉन्फ़िगरेशन यह है:
systemLog:
destination: file
path: /usr/local/var/log/mongodb/mongo.log
logAppend: true
storage:
dbPath: /usr/local/var/mongodb
net:
bindIp: 127.0.0.1
लॉग /usr/local/var/log/mongodb/mongo.log
में संग्रहित होते हैं और डेटाबेस /usr/local/var/mongodb
. में संग्रहीत है ।
डिफ़ॉल्ट रूप से कोई एक्सेस कंट्रोल नहीं है, कोई भी डेटाबेस को पढ़ और लिख सकता है।
मोंगो शैल
MongoDB के साथ प्रयोग करने और इसके साथ बातचीत शुरू करने का सबसे अच्छा तरीका है mongo
प्रोग्राम, जो MongoDB शेल शुरू करता है।
अब आप कोई भी आदेश दर्ज कर सकते हैं जिसे Mongo समझता है।
डेटाबेस बनाएं
जब आप प्रारंभ करते हैं, तो Mongo test
. नामक एक डेटाबेस बनाता है . db
चलाएं शेल में आपको सक्रिय डेटाबेस का नाम बताने के लिए
डेटाबेस बदलने के लिए, बस लिखें use newname
और newname
डेटाबेस तुरंत बन जाएगा और शेल उसका उपयोग करने के लिए स्विच हो जाएगा।
show databases
का उपयोग करें उपलब्ध डेटाबेस को सूचीबद्ध करने के लिए:
जैसा कि आप देख सकते हैं, something
डेटाबेस सूचीबद्ध नहीं है, सिर्फ इसलिए कि इसमें अभी तक कोई संग्रह नहीं है। आइए एक बनाते हैं।
संग्रह
MongoDB में, एक संग्रह SQL डेटाबेस तालिका के बराबर है।
आप db.createCollection()
. का उपयोग करके वर्तमान डेटाबेस पर एक संग्रह बनाते हैं आज्ञा। पहला तर्क डेटाबेस का नाम है, और आप विकल्प ऑब्जेक्ट को दूसरे पैरामीटर के रूप में पास कर सकते हैं।
एक बार ऐसा करने के बाद, show databases
नया डेटाबेस सूचीबद्ध करेगा, और show collections
संग्रह को सूचीबद्ध करेगा।
आप इसे db
. की एक संपत्ति के रूप में उपयोग करके एक नया संग्रह भी बना सकते हैं ऑब्जेक्ट, और कॉल करना insert()
संग्रह में कोई वस्तु जोड़ने के लिए:
db.dogs.insert({ name: 'Roger' })
संग्रह में वस्तुओं को सूचीबद्ध करना
किसी संग्रह में जोड़ी गई वस्तुओं को दिखाने के लिए, find()
. का उपयोग करें विधि:
जैसा कि आप देख सकते हैं एक अतिरिक्त _id
है हमारे द्वारा जोड़े गए रिकॉर्ड के लिए संपत्ति। यह स्वचालित रूप से हमारे लिए MongoDB द्वारा जेनरेट किया गया है।
अब और कुत्तों को जोड़ें:
db.dogs.insert({ name: 'Buck' })
db.dogs.insert({ name: 'Togo' })
db.dogs.insert({ name: 'Balto' })
कॉलिंग db.dogs.find()
हमें सभी प्रविष्टियां देगा, जबकि हम एक विशिष्ट प्रविष्टि को फ़िल्टर करने और पुनर्प्राप्त करने के लिए एक पैरामीटर पास कर सकते हैं, उदाहरण के लिए db.dogs.find({name: 'Roger'})
के साथ :
find()
विधि एक कर्सर लौटाती है जिस पर आपको पुनरावृति करने की आवश्यकता होती है।
एक और तरीका है जो तब काम आता है जब आप जानते हैं कि आपको केवल एक रिकॉर्ड मिलेगा, जो है findOne()
, और इसका उपयोग उसी तरह किया जाता है। यदि एक से अधिक रिकॉर्ड एक क्वेरी से मेल खाते हैं, तो यह केवल पहला रिकॉर्ड लौटाएगा।
रिकॉर्ड अपडेट करना
किसी रिकॉर्ड को अपडेट करने के लिए आप update()
. का उपयोग कर सकते हैं संग्रह पर विधि:
रिकॉर्ड हटाना
आप remove()
. कॉल करने वाले रिकॉर्ड को हटा सकते हैं एक संग्रह पर विधि, किसी वस्तु को पहचानने में मदद करने के लिए पास करना:
संग्रह से सभी प्रविष्टियों को हटाने के लिए, एक खाली वस्तु पास करें:
db.dogs.remove({})