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