आपके विशेष मामले के लिए, MongoDB एक अच्छा विकल्प लगता है, लेकिन इसमें बहुत सारे परिदृश्य (शायद उनमें से अधिकांश) हैं जहां यह सबसे अच्छा विकल्प नहीं होगा।
MongoDB उन परिदृश्यों में अधिक अनुकूल है जो बहुत सारे डेटा को पढ़ने / लिखने के लिए कहते हैं , बिना लेन-देन सुरक्षा पर अधिक जोर दिए (यदि कुछ डेटा कभी-कभी सर्वर क्रैश में खो जाता है, तो यह कोई बड़ी बात नहीं है), बड़े पैमाने पर उम्मीद करें, और डॉन ' टी वास्तव में एक स्थिर स्कीमा है।
MongoDB उन परिदृश्यों के लिए अनुकूल नहीं है जिनकी आवश्यकता है:
- मजबूत ACID गारंटी: MongoDB डुप्लिकेट डेटा को संग्रहीत, असंगत रीड, और यहां तक कि डेटा हानि के लिए भी अनुमति देता है। ये चीजें कुछ अनुप्रयोगों में ठीक हैं, लेकिन अधिकांश में नहीं।
- मल्टी-ऑब्जेक्ट लेनदेन: MongoDB ACID लेनदेन का समर्थन करता है, लेकिन केवल एकल ऑब्जेक्ट / दस्तावेज़ के लिए। यह सिर्फ बैंक हस्तांतरण, आरक्षण करना आदि जैसे अधिक जटिल कार्यों के लिए इसमें कटौती नहीं करेगा।
- पारंपरिक बीआई: वहाँ बहुत सारे बीआई उपकरण हैं जो केवल पारंपरिक एसक्यूएल के साथ अच्छी तरह से खेलते हैं।
- SQL: MongoDB में एक बहुत ही विशिष्ट क्वेरी भाषा है, जबकि SQL बहुत सारे लोगों द्वारा बहुत अच्छी तरह से जाना जाता है (विचार करने के लिए एक महत्वपूर्ण पहलू हो सकता है), बहुत सारी जटिल चीजें कर सकता है (जबकि MongoDB के साथ आपको एक साधारण प्रदर्शन करने में परेशानी होगी शामिल हो) और बहुत सारे कार्यान्वयन में हस्तांतरणीय है।
MongoDB तेज़ है और आपको सिस्टम के बहुत सारे प्रदर्शनों को खत्म करने की अनुमति देगा, जो कि RDBMS डिफ़ॉल्ट रूप से लागू होता है, जैसे कि अखंडता जांच (ध्यान दें कि आप इस तरह के उद्देश्यों के लिए RDBMS को ट्वीक भी कर सकते हैं), लेकिन सच्चाई यह है कि अधिकांश स्थितियों में, इसकी जरूरत ही नहीं है। साथ ही, व्यापार बंद विश्वसनीयता और लचीलापन है (आपको परेशानी होगी यदि, बाद में, आप तय करते हैं कि आपको मौजूदा डेटा के साथ अधिक जटिल संचालन करने की आवश्यकता है)।
यह सब आपके द्वारा बनाए जा रहे एप्लिकेशन की जरूरतों पर निर्भर करता है। क्या यह गति और उपलब्धता, या सुरक्षा, विश्वसनीयता और लचीलापन है। आपको यह जानना होगा कि आपके डेटा में (और आपके डेटा के कनेक्शन में) अधिक मूल्य कहां है। यदि आप अभी तक नहीं जानते हैं, तो संभवतः यह सबसे अच्छा है यदि आप ऐसा कुछ चुनते हैं जो आपको भविष्य में एक कोने में पेंट नहीं करेगा, और आपको सुविधाओं को जोड़ने और उन कार्यों को निष्पादित करने की अनुमति देगा जो आपके एप्लिकेशन की ज़रूरत हैं।