MongoDB और Mongoose के बीच अंतर


157

मैं मोनगोडब डेटाबेस का उपयोग करना चाहता था, लेकिन मैंने देखा कि दो अलग-अलग डेटाबेस हैं जिनकी अपनी वेबसाइट और स्थापना विधियाँ हैं: मोंगोडब और मोंगोज़। इसलिए मैं अपने आप से यह सवाल पूछ रहा हूं: "मैं किसका उपयोग करता हूं?"।

तो इस सवाल का जवाब देने के लिए मैं समुदाय से पूछता हूं कि क्या आप बता सकते हैं कि इन दोनों में क्या अंतर हैं? और यदि संभव हो तो पेशेवरों और विपक्ष? क्योंकि वे वास्तव में मेरे जैसे ही दिखते हैं।


: यह उल्लेख medium.com/@bugwheels94/...
धीरज KATEKAR

जवाबों:


233

मुझे लगता है कि आप पहले से ही जानते हैं कि MongoDB एक NoSQL डेटाबेस सिस्टम है जो BSON दस्तावेजों के रूप में डेटा संग्रहीत करता है। हालाँकि आपका प्रश्न, Node.js. के पैकेज के बारे में है।

Node.js के संदर्भ में, MongoDB है देशी चालक एक MongoDB उदाहरण के साथ बातचीत के लिए और नेवला एक है वस्तु मॉडलिंग उपकरण MongoDB के लिए।

Mongoose अपने डेटा को मॉडल करने के तरीके के साथ प्रोग्रामर प्रदान करने के लिए MongoDB ड्राइवर के शीर्ष पर बनाया गया है।

संपादित करें: मैं इस पर टिप्पणी नहीं करना चाहता कि कौन सा बेहतर है, क्योंकि इससे इस उत्तर पर राय बनेगी। हालांकि मैं दोनों दृष्टिकोणों का उपयोग करने के कुछ फायदे और नुकसान सूचीबद्ध करूंगा।

Mongoose का उपयोग करते हुए, उपयोगकर्ता एक विशेष संग्रह में दस्तावेजों के लिए स्कीमा को परिभाषित कर सकता है। यह MongoDB में डेटा के निर्माण और प्रबंधन में बहुत सुविधा प्रदान करता है। नकारात्मक पक्ष पर, सीखने के लिए कुछ समय लग सकता है, और स्कीमा को संभालने में कुछ सीमाएँ होती हैं जो काफी जटिल होती हैं।

हालाँकि, यदि आपका संग्रह स्कीमा अप्रत्याशित है, या आप Node.js के अंदर अनुभव की तरह एक मैंगो-शेल चाहते हैं, तो आगे बढ़ो और MongoDB ड्राइवर का उपयोग करें। यह सबसे सरल है। यहाँ नकारात्मक पक्ष यह है कि आपको डेटा को मान्य करने के लिए बड़ी मात्रा में कोड लिखना होगा, और त्रुटियों का जोखिम अधिक होगा।


9
यह एक राय आधारित प्रश्न है। कुछ निम्न-स्तरीय API पसंद कर सकते हैं। आप मानगो और मूल चालक की जांच क्यों नहीं करते हैं , और फिर तय करें कि आपके लिए कौन बेहतर है?
जुन्नस २५'१५

1
@ Michael9 Node.js के लिए मूल MongoDB ड्राइवर का एक ही नाम है। कृपया शब्द 'Node.js ...' के संदर्भ में नोट करें। आपका संपादन गलत था।
ZeMoon

@ZeMoon इस मामले में यह mongodbनहीं होना चाहिए MongoDB: पी
स्टाइलव

वहाँ एक व्यावहारिक अंतर हो सकता है जहां बहुवचन में नाम संग्रह करने के लिए मैंगोज़ लिंक होते हैं?
एंटनी गिब्स 4

2
प्रदर्शन कारक पर भी विचार करना चाहिए, कृपया इस url को देखें, इस व्यक्ति ने कमाल के बेंचमार्क साझा किए हैं। medium.com/@bugwheels94/…
धीरज कटेकर

46

Mongo NoSQL डाटाबेस है।

यदि आप अपने डेटा मॉडल के लिए किसी भी ORM का उपयोग नहीं करना चाहते हैं, तो आप मूल ड्राइवर mongo.js का उपयोग भी कर सकते हैं: https://github.com/mongodb/node-mongodb-native

मानगो एक ओआरएम में से एक है जो हमें आसानी से समझने योग्य प्रश्नों के साथ मोंगो डेटा तक पहुंचने के लिए कार्यक्षमता प्रदान करता है।

Mongoose आपके डेटाबेस मॉडल पर अमूर्तता की भूमिका निभाता है।


1
@ArslanRamay: medium.com/@bugwheels94/… , बहुत मददगार
DHIRAJ KATEKAR

14

एक और अंतर जो मुझे दोनों के संबंध में मिला, वह यह है कि यह काफी आसान है connect to multiple databases, mongodb native driverजबकि आपको ऐसे कामों का उपयोग करना होगा mongooseजिनमें अभी भी कुछ कमियां हैं।

इसलिए यदि आप एक बहु-आवेदन के लिए जाना चाहते हैं, तो मूल निवासी ड्राइवर के लिए जाएं।


6

यदि आप अपने मालिकाना कोड के साथ इन घटकों का उपयोग करने की योजना बना रहे हैं तो कृपया नीचे दी गई जानकारी देखें।

MongoDB:

  1. यह एक डेटाबेस है।
  2. यह घटक Affero जनरल पब्लिक लाइसेंस (AGPL) लाइसेंस द्वारा शासित है।
  3. यदि आप इस घटक को अपने स्वामित्व कोड के साथ लिंक करते हैं तो आपको अपना संपूर्ण स्रोत कोड सार्वजनिक डोमेन में जारी करना होगा, क्योंकि यह वायरल प्रभाव की तरह है (जीपीएल, एलजीपीएल आदि)
  4. यदि आप क्लाउड पर अपना एप्लिकेशन होस्ट कर रहे हैं, तो 2 (2) लागू होंगे और आपको अंतिम उपयोगकर्ताओं को अपनी इंस्टॉलेशन जानकारी भी जारी करनी होगी।

नेवला:

  1. यह एक ऑब्जेक्ट मॉडलिंग टूल है।
  2. यह घटक MIT लाइसेंस द्वारा शासित है।
  3. बिना किसी प्रतिबंध के मालिकाना कोड के साथ इस घटक का उपयोग करने की अनुमति दी।
  4. किसी भी मीडिया या होस्ट का उपयोग करके अपने एप्लिकेशन को शिपिंग करने की अनुमति है।

1
बस सोचा था कि उल्लेख करूंगा। अक्टूबर 16, 2018 से पहले सर्वर घटक एजीपीएल थे, लेकिन अब कुछ कस्टम लाइसेंस हैं। हालांकि ड्राइवर (मंगोल) हमेशा अपाचे था और कभी भी मालिकाना कोड के लिए मायने नहीं रखता था। Ref: mongodb.com/community/licensing
ड्रॉज़

2
MongoDB भाग 4 के लिए उत्तर गलत है। आम तौर पर क्लाइंट एप्लिकेशन MongoDB ड्राइवर (यानी MongoDB Node.JS ड्राइवर) का उपयोग करते हैं, जिन्हें Apache v2 के तहत लाइसेंस प्राप्त होता है। यदि आप स्वयं MongoDB सर्वर कोड (डेटाबेस) को संशोधित कर रहे हैं और इसे पुनर्वितरित कर रहे हैं, तो आपको या तो एक वाणिज्यिक समझौते की आवश्यकता है या इसे खुला स्रोत चाहिए। एसएसपीएल लाइसेंस में बदलाव डेटाबेस-ए-इन-ए-सर्विस क्लाउड वेंडर क्लाज के लिए एक अतिरिक्त है, जो कि
मोंगोबीडी

6

mongo-dbनए डेवलपर्स के लिए एक बढ़िया विकल्प नहीं है।
दूसरी ओर mongooseORM (ऑब्जेक्ट रिलेशनल मैपिंग) नए-बाइज़ के लिए एक बेहतर विकल्प हो सकता है।


2
ढेर अतिप्रवाह में आपका स्वागत है! आपका उत्तर मूल्यवान हो सकता है लेकिन यह कुछ स्पष्टीकरण को याद कर रहा है। शायद आप अभी भी अपने उत्तर में कुछ शब्द जोड़ सकते हैं। यहां अच्छे उत्तर देने के लिए एक गाइड है
डेविड

4

MongoDB डेटाबेस के साथ बातचीत करने के लिए Mongodb और Mongoose दो अलग-अलग ड्राइवर हैं।

Mongoose : ऑब्जेक्ट डेटा मॉडलिंग (ODM) लाइब्रेरी जो आपके डेटा के लिए एक कठोर मॉडलिंग वातावरण प्रदान करती है। MongoDB के साथ बातचीत करने के लिए उपयोग किया जाता है, यह डेटा को प्रबंधित करने में सुविधा प्रदान करके जीवन को आसान बनाता है।

Mongodb : MongoDB के साथ बातचीत करने के लिए Node.js में मूल चालक।


3

Mongodb और Mongoose दो पूरी तरह से अलग चीजें हैं!

Mongodb स्वयं डेटाबेस है , जबकि Mongoose है Mongodb के लिए ऑब्जेक्ट मॉडलिंग टूल है

संपादित करें: जैसा कि MongoDB npm पैकेज है, धन्यवाद!


40
mongodb एक डेटाबेस नहीं है, यह एक नोड पैकेज है जो मूल mongo ड्राइवर है। यह नोड जेएस से एक मोंगो सर्वर तक पहुंचने के लिए सबसे निचला स्तर एपीआई है।
मेरीओच

3
प्रश्न मोंगोबब मूल चालक के बारे में था db संचालन बनाम मानस के लिए। उत्तर बिंदु पर नहीं है।
सोरा

@mariocatch MongoDB स्केलेबिलिटी और फ्लेक्सिबिलिटी वाला एक डॉक्यूमेंट डेटाबेस है जिसे आप अपनी ज़रूरत के अनुसार क्वेरी और इंडेक्सिंग के साथ चाहते हैं। यह इसके प्रलेखन के मुखपृष्ठ पर लिखा गया है।
दीप कक्कड़
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.