मोंगोडीबी का उपयोग कर वेब अनुप्रयोग – मोंगोडीबी गंभीर वेब विकास के लिए सबसे अच्छे उपकरण में से एक है , और मोंगोडीबी पर यह आलेख मोंगोडीबी के साथ वेब अनुप्रयोग बनाने के लिए आपको जो कुछ जानने की आवश्यकता है, उसे देखेगा। लेकिन शुरू करने से पहले, चलिए लोकप्रिय उपकरण पर नज़र डालें।
छवि स्रोत: pixabay.com
मोंगोडीबी क्या है?
आसान शब्दों में, मोंगोडीबी एक पार मंच दस्तावेज़ उन्मुख है नोएसक्यूएल डेटाबेस गतिशील स्कीमा, बीएसओएन दस्तावेजों बुलाया का उपयोग कर के बजाय पारंपरिक संबंधपरक डेटाबेस (आरडीबी) संरचना निम्नलिखित जेएसओएन-जैसे दस्तावेज़ों का उपयोग करता है।
यह बहुत सी शर्तें हैं जिनसे आप परिचित नहीं हो सकते हैं, तो चलिए उन्हें पहले तोड़ दें।
अब, एक दस्तावेज़-उन्मुख डेटाबेस मूल अवधारणा पर कार्य करता है जिसमें डेटा दस्तावेज़ में ‘मेटाडेटा’ होता है, जो डेटा के प्रकार की पहचान करने के लिए उपयोग किए जाने वाले मान होते हैं और आवश्यकता होने पर इसे स्टोर करना और पुनर्प्राप्त करना आसान बनाता है। उदाहरण के लिए, आइए डेटा की निम्नलिखित दो पंक्तियों को देखें:
- जॉन हैंकॉक
- वास्तुकार
इन दो पंक्तियों पर एक नज़र आपको इस बारे में एक विचार देनी चाहिए कि यह डेटा किस प्रकार संदर्भित करता है: किसी व्यक्ति का नाम और व्यवसाय। एक मशीन, हालांकि, इस भेद को बाहर नहीं कर सकती है। इसे डेटा के प्रकार को बताया जाना चाहिए।
एक आरडीबी में, इस प्रकार को एक कुंजी-मूल्य स्टोर में संग्रहीत किया जा सकता है जो दस्तावेज़ से अलग है। हालांकि, दस्तावेज़-उन्मुख डेटाबेस के साथ, आप कोड टाइप करते समय डेटा के प्रकार को निर्धारित करते हैं। तो आप इस तरह थोड़ा लिखना समाप्त करते हैं:
- <नेम> जॉन हैंकॉक </ नेम>
- <व्यवसाय> वास्तुकार </ व्यवसाय>
और वहां तुम जाओ; अब दस्तावेज़ के भीतर डेटा का प्रकार परिभाषित किया गया है। यह एक लचीलापन देता है जो आरडीबी में मौजूद नहीं है, यही कारण है कि दस्तावेज़-उन्मुख डेटाबेस वेब अनुप्रयोगों के लिए बहुत लोकप्रिय है।
आखिरकार, वेब अनुप्रयोग नियमित परिवर्तन और अपडेट के अधीन हैं। बेशक, आरडीबी के पास भी उनके फायदे हैं, और दस्तावेज़-उन्मुख डेटाबेस हर स्थिति के लिए बिल्कुल सही नहीं हैं, लेकिन चलो नहीं।
आइए जेएसओएन, बीएसओएन और स्कीमा पर जाएं। जेएसओएन जावास्क्रिप्ट ऑब्जेक्ट नोटेशन को संदर्भित करता है, लेकिन यह वास्तव में एक खुला मानक डेटा प्रारूप है जो जावास्क्रिप्ट के अलावा अन्य भाषाओं के साथ काम कर सकता है।
एक स्कीमा डेटाबेस की संरचना है, जिसे आरडीबी के मामले में टेबल के रूप में परिभाषित किया जाता है। चूंकि दस्तावेज़-उन्मुख डेटाबेस ऐसी तालिकाओं का उपयोग नहीं करते हैं, इसलिए वे अनिवार्य रूप से संरचना-कम, या स्कीमलेस हैं।
बीएसओएन के लिए, ठीक है, यह सिर्फ बाइनरी जेएसओएन के लिए है, और यह मोंगोडीबी डेटाबेस के लिए डेटा स्टोरेज प्रारूप है। इस चरण में आपको इसके बारे में सब कुछ पता होना चाहिए।
अब, बुनियादी बातों के साथ, चलिए देखते हैं कि क्यों मोंगो डीबी वेब अनुप्रयोग बनाने के लिए एक अच्छा विकल्प है:
नोट: एक पूर्ण वेब विकास बनें
जानें कि उपयोगकर्ता के अनुकूल डिज़ाइन और स्पष्ट नेविगेशन की सुविधा वाले दृश्यमान आकर्षक साइटें कैसे बनाएं। सर्वश्रेष्ठ सॉफ्टवेयर विकास प्रथाओं का उपयोग करके अच्छी तरह डिज़ाइन और कुशल कोड लिखें। हमारे व्यावहारिक प्रशिक्षण के साथ एक सफल वेब विकास बनें।
मोंगोडीबी के लिए क्यों जाना है?
वेब अनुप्रयोगों के निर्माण के लिए मोंगोडीबी की लोकप्रियता के कई कारण हैं । मोंगोडीबी एक आदर्श उपकरण नहीं है; वास्तव में, इससे दूर। मोंगोडीबी में कई चुनौतियां हैं, और यह सभी वेब अनुप्रयोगों के लिए सही नहीं है। लेकिन निम्नलिखित कारणों से वेब अनुप्रयोगों की बात आती है तो मोंगोडीबी अच्छी तरह से काम करता है:
-
मोंगोडीबी स्कीमालेस है
मोंगोडीबी डेटाबेस प्रत्येक दस्तावेज़ के साथ दस्तावेज़ों का संग्रह रख सकता है जिसमें अपना आकार, सामग्री और फ़ील्ड की संख्या हो। आप वापस जा सकते हैं और प्रमुख मानों को बदल सकते हैं, या जिन्हें आप चाहते हैं उन्हें जोड़ और हटा सकते हैं।
यह एक ऑब्जेक्ट की संरचना को स्पष्ट और सीधा बनाता है, और आवश्यकता होने पर मोंगोडीबी को स्केल करना भी आसान होता है।
-
मोंगोडीबी सामान्य उद्देश्य है
डेटाबेस का उपयोग ग्राहक डेटा प्रबंधन, सामग्री प्रबंधन , डेटा केंद्र, मोबाइल ऐप्स , चीजों का इंटरनेट, बिग डेटा , उत्पाद और संपत्ति कैटलॉग और डेटाबेस-जैसी-सेवा सहित कई वेब अनुप्रयोगों के लिए किया जा सकता है ।
-
मोंगोडीबी ऑटो-शेरिंग का समर्थन करता है
रिलेशनल डेटाबेस आमतौर पर लंबवत पैमाने पर स्केल करते हैं, जिसमें एक सर्वर पूर्ण डेटाबेस होस्ट करता है। यह ऑपरेशन के पैमाने को सीमित कर सकता है, समाधान को क्षैतिज रूप से जोड़ने और एकल सर्वर पर क्षमता को ध्यान में रखते हुए सर्वर जोड़ने के साथ।
इससे बचने के लिए डेटाबेस को साझा करना और एक सर्वर के रूप में हार्डवेयर कार्य करना है। विकास को मशीनों में कई रिलेशनल डेटाबेस तैनात करना होगा, और डेटा वितरित करने, प्रश्नों और परिणामों को एकत्रित करने के लिए एप्लिकेशन कोड विकसित करना होगा।
मोंगोडीबी और अन्य नोएसक्यूएल डेटाबेस ऑटो-शेयरिंग का समर्थन करते हैं, जिसका मतलब है कि वे स्वचालित रूप से संरचना के बारे में जागरूक किए बिना विभिन्न सर्वरों पर डेटा फैलते हैं।
मोंगोडीबी क्लाउड कंप्यूटिंग के साथ विशेष रूप से उपयोगी है । एक विकास के रूप में, आपको वेब अनुप्रयोगों का समर्थन करने के लिए महंगा और जटिल प्लेटफ़ॉर्म बनाने की ज़रूरत नहीं है, लेकिन वास्तविक एप्लिकेशन कोड लिखने पर ध्यान केंद्रित कर सकते हैं।
मोंगोडीबी के बारे में जानने के लिए कुछ और शर्तें
ठीक है, इसलिए हमने अब मोंगोडीबी की मूल बातें और लाभ शामिल किए हैं। इससे पहले कि हम अपना हाथ गंदा पाएं, आइए कुछ और शर्तों को देखें जिनसे आपको परिचित होना चाहिए:
- डेटाबेस: डेटाबेस में संग्रह होते हैं, और प्रत्येक डेटाबेस में फाइल सिस्टम पर अपनी फाइलें होती हैं।एक ठेठ मोंगोडीबी सर्वर में कई डेटाबेस होंगे।
- संग्रह: मोंगोडीबी दस्तावेजों के एक समूह को संग्रह कहा जाता है, और यह आरडीबी में एक तालिका के बराबर है।एक डेटाबेस में एक संग्रह होगा, और प्रत्येक दस्तावेज़ में अलग-अलग फ़ील्ड होंगे। टैबलेट के विपरीत, संग्रह में स्कीमा नहीं होता है।
- दस्तावेज़: एक दस्तावेज़ कुंजी-मूल्य जोड़े का एक गुच्छा है और इसमें एक गतिशील स्कीमा है, जिसका अर्थ है कि उसी संग्रह में विभिन्न दस्तावेज़ों में अलग-अलग फ़ील्ड सेट और संरचनाएं हो सकती हैं।
वेब अनुप्रयोगों का निर्माण
इस विशेष मोंगोडीबी मार्गदर्शक के लिए बनाए जा रहे वेब अनुप्रयोग गूगल रीडर जैसे आरएसएस एग्रीगेटर हैं। वेब अनुप्रयोगों में दो महत्वपूर्ण घटक होंगे: एक आरईएसटी एपीआई और एक फीड हथियार।
यह समझने के लिए कि एक आरईएसटी एपीआई क्या है, आपको पहले मीन स्टैक के बारे में कुछ पता होना चाहिए। एक फ़ीड हथियार के लिए कोड, गीटहब निर्देशिका पर भी पाया जा सकता है।
मीन स्टैक को समझना:
मीन स्टैक निम्नलिखित के लिए खड़ा है:
- मोंगोडीबी, जो वेब अनुप्रयोग के लिए उपयोग किया जाने वाला डेटाबेस है
- जेएस, जो एक हल्का वेब अनुप्रयोग ढांचा है
- जेएस, जो जावास्क्रिप्ट और एचटीएमएल 5 समृद्ध वेब अनुप्रयोग बनाने के लिए एक ढांचा है
- जेएस, जो सर्वर-साइड जावास्क्रिप्ट दुभाषिया है
वेब अनुप्रयोगों पर चर्चा के लिए, एक एचटीएमएल उपयोगकर्ता इंटरफ़ेस के बजाय एक आरईएसटी एपीआई बनाया जाएगा । प्रतिनिधि राज्य स्थानांतरण (आरईएसटी) एपीआई एक्सएमएल आधारित एपीआई के लिए हल्का वजन विकल्प है और उपयोगकर्ता इंटरफ़ेस न होने के बावजूद किसी भी इंटरफ़ेस प्रकार के लिए आधार के रूप में कार्य कर सकता है।
ग्राहक-सर्वर मॉडल पर आरईएसटी फ़ंक्शन, ग्राहक एचटीटीपी सर्वर पर एचटीटीपी कमांड भेजते हुए, यूआरएल में एन्कोड किए गए वैरिएबल पैरामीटर के साथ कार्रवाई के लक्ष्य ऑब्जेक्ट का वर्णन करता है। सर्वर तब जेएसओएन और परिणाम कोड के साथ जवाब देता है।
अब, मोंगडीबी और जावास्क्रिप्ट दोनों जेएसओएन के साथ अच्छी तरह से प्रतिक्रिया करते हैं, जिससे मुख्य रूप से वेब अनुप्रयोगों के लिए उपयुक्त मीन स्टैक बनाते हैं।
क्रड
संक्षेप में सीआरयूडी का निर्माण, पढ़ना, अपडेट करना और हटाना है। ये सामान्य डेटाबेस ऑपरेशंस हैं जो एचटीटीपी में पोस्ट के रूप में अनुवाद करते हैं, प्राप्त करते हैं, डालते हैं और हटाते हैं।
एक आरईएसटी एपीआई बनाना
आइए वेब अनुप्रयोगों के निर्माण के लिए नींव विकसित करने, एक आरईएसटी एपीआई बनाकर शुरू करें। एप्लिकेशन वेब-आधारित या एंड्रॉइड , आईओएस या अन्य विशिष्ट प्लेटफॉर्म के लिए डिज़ाइन किया जा सकता है । आरंभ करने के लिए, आइए उन चीजों को सूचीबद्ध करें जो ऐप करने में सक्षम होंगे:
- उपयोगकर्ताओं को खाता बनाने की अनुमति दें
- फ़ीड की सदस्यता लेने या सदस्यता समाप्त करने के लिए उन्हें सक्षम करें
- फ़ीड प्रविष्टियों को पढ़ने या अपठित के रूप में पढ़ने और चिह्नित करने की क्षमता दें
- निगरानी के लिए आरएसएस फ़ीड ट्रैक करें
- उपयोगकर्ता जानकारी को अपने संबंधित खातों में स्टोर करें
- उपयोगकर्ता फ़ीड सदस्यता ट्रैक करें
- किसी उपयोगकर्ता द्वारा पहले से पढ़ी गई फ़ीड प्रविष्टि को ट्रैक करें
मॉडलिंग की दिनांक
आवश्यकताओं के आधार पर, वेब अनुप्रयोगों को जानकारी के प्रबंधन के लिए चार संग्रह की आवश्यकता होगी:
- उपयोगकर्ता संग्रह
- फ़ीड संग्रह
- उपयोगकर्ता फ़ीड प्रविष्टि मैपिंग संग्रह
- फ़ीड प्रविष्टि संग्रह
यहां प्रत्येक पर एक नज़र डालें:
- फ़ीड संग्रह:
फीड संग्रह मॉडलिंग के लिए निम्नलिखित जेएसओएन एक अच्छा उदाहरण है:
{ "_id, ObjectId("523b1153a2aa6a3233a91412")
"requiresAuthentication": false,
"permanentlyRemoved": false,
"feedURL": "http://feeds.reuters.com/reuters/topNews",
"title": "Reuters",
"bozoBitSet": false,
"enabled": true,
"etag": "4bL78iLSZud2iXd/vd10mYC32BE",
"link": "http://www.reuters.com/ ",
"permanentRedirectURL": null,
"description": "Reuters news feed” }
ऊपर जेएसओएन दस्तावेज़ वेबसाइट पर प्रकाशित नवीनतम समाचारों के बारे में जानकारी ट्रैक करने, रॉयटर्स के लिए एक आरएसएस फ़ीड है। यहां बहुत से फ़ील्ड हैं जो आप यहां देखते हैं, लेकिन वेब अनुप्रयोगों के लिए सबसे महत्वपूर्ण काम फ़ीड और फ़ीड विवरण का यूआरएल है।
यूआरएल सही स्रोत से सामग्री लाने के लिए महत्वपूर्ण है, और विवरण महत्वपूर्ण है क्योंकि यह फ़ीड के लिए सारांश प्रदान करता है।
इस बीच, शेष क्षेत्र आंतरिक उपयोग के लिए हैं। आप जितना चाहें उतना जोड़ सकते हैं या हटा सकते हैं। दस्तावेज़ के शीर्ष पर दाएं _id फ़ील्ड है। प्रत्येक दस्तावेज़ में यह फ़ील्ड होना आवश्यक है, और आईडी अद्वितीय होना चाहिए।
उपर्युक्त उदाहरण में, फ़ील्ड के लिए मैन्युअल रूप से एक आईडी बनाई गई है। यदि आप इसे याद करते हैं, तो मोंगोडीबी स्वचालित रूप से एक बना देगा।
- फ़ीड प्रविष्टियों को ट्रैक करना और एकत्र करना
यदि आप अधिक समाचार फ़ीड ट्रैक करना चाहते हैं, तो आप ऊपर दिए गए प्रारूप का उपयोग करके उनमें से अधिक जोड़ सकते हैं। एक बार जब आप फ़ीड जोड़ते हैं, तो उन्हें ट्रैक करने और उन्हें इकट्ठा करने का समय आता है। फ़ीड प्रविष्टि संग्रह के लिए नीचे दिया गया एक दस्तावेज़ है:
{ "_id": ObjectId("523b1153a2aa6a3233a91412"),
"description": "Martin Shkreli, the poster boy for prescription drug price increases who was arrested for securities fraud this week, has stepped down from his post as chief executive officer of Turing Pharmaceuticals Inc, the company said on Friday”,
"title": "Turing Pharma names chairman to replace Shkreli as CEO",
"summary": "Turing Pharma names chairman to replace Shkreli as CEO”,
"content": [{ "base": "http://www.reuters.com/",
"type": "text/html",
"value": ”LOTS OF HTML HERE",
"language": "en" }], "published Date": ISODate("2015-12-18T18:13:58+0000"),
"link": " http://www.reuters.com/article/us-usa-crime-shkreli-ceo-idUSKBN0U122R20151218",
"feedID": ObjectId("523b1153a2aa6a3233a913f8") }
एक बार फिर, आप विवरण, सारांश और शीर्षक जैसे कुछ अन्य क्षेत्रों के साथ भरने वाले _ आइडी फ़ील्ड को देख सकते हैं। सामग्री फ़ील्ड एक सरणी का उपयोग करता है, और मोंगोडीबी दस्तावेजों को स्टोर करने के लिए सरणी की अनुमति देता है। यह सब-दस्तावेज़ व्यवस्था उन परिस्थितियों में विशेष रूप से उपयोगी हो सकती है जहां सभी जानकारी एक साथ आयोजित की जानी चाहिए।
फीडआईडी का नोट लें; यह वही ऑब्जेक्ट आईडी प्रकार और रॉयटर्स फ़ीड के लिए पहले फ़ीड प्रविष्टि दस्तावेज़ के रूप में _ आइडी का मान है। यह एक रेफरेंसियल मॉडल प्रदान करता है, ताकि आप रॉयटर्स दस्तावेज़ को वापस करने के लिए उसी आईडी मान पर फ़ीड संग्रह से पूछ सकें।
-
उपयोगकर्ता को ट्रैक करना
उपयोगकर्ताओं का ट्रैक रखने के लिए यहां एक उदाहरण दस्तावेज़ है:
{ "_id" : ObjectId("54ad6c3ae764de42070b27b1"),
"active" : true,
"email" : "[email protected]",
"firstName" : "John",
"lastName" : "Hancock",
"sp_api_key_id" : "6YQB0A8VXM0X8RVDPPLRHBI7J",
"sp_api_key_secret" : "veBw/YFx56Dl0bbiVEpvbjF”,
"lastLogin" : ISODate("2015-01-07T17:26:18.996Z"),
"created" : ISODate("2015-01-07T17:26:18.995Z"),
"subs" : [ ObjectId("523b1153a2aa6a3233a913f8"),
ObjectId("54b563c3a50a190b50f4d63b") ], }
यहां, उपयोगकर्ता के पास तीन प्रमुख विशेषताएं हैं: पहला नाम, अंतिम नाम और ईमेल पता। स्टॉर्मपाथ उपयोगकर्ता प्रबंधन एपीआइ: एसपी _एपीआइ_कीय_सीक्रेट और एसपी_एपीआइ_कीय_आइडी के साथ दो तत्व भी उपयोग किए जा सकते हैं।
अंतिम फ़ील्ड, सबस, सदस्यता सरणी है और उस फ़ीड को बताती है जिस पर उपयोगकर्ता ने सदस्यता ली है।
· फ़ीड प्रविष्टि मैपिंग
अंतिम संग्रह वह उपयोगकर्ताओं को मैपिंग को पढ़ने और फ़ीड पढ़ने के लिए सक्षम बनाता है जो पढ़ा गया है:
{ "_id" : ObjectId("523b2fcc054b1b8c579bdb82"),
"read" : true,
"user_id" : ObjectId("54ad6c3ae764de42070b27b1"),
"feed_entry_id" : ObjectId("523b1153a2aa6a3233a91412"),
"feed_id" : ObjectId("523b1153a2aa6a3233a913f8") }
जैसा कि आप देख सकते हैं, फ़ीड को पढ़ा गया है या नहीं, यह चिह्नित करने के लिए एक मूल सत्य / झूठा बूलियन का उपयोग किया जाता है। अब, उपयोगकर्ता निम्नलिखित कार्यों को करने में सक्षम होना चाहिए:
- खाता बनाना
- फीड्स की सदस्यता लेना या सदस्यता रद्द करना
- फ़ीड प्रविष्टियों को पढ़ना
- फीड या प्रविष्टियों को पढ़ने या अपठित के रूप में चिह्नित करना
- पासवर्ड रीसेट करें
एचटीटीपी ऑपरेशंस और कमांड पर इन परिचालनों को मैप करने का तरीका यहां दी गई है।
मार्ग | आदेश | विवरण | चर |
/ उपयोगकर्ता / भर्ती | पद | एक नया उपयोगकर्ता पंजीकृत करें | फर्स्टनेम लास्टनेम ईमेल पासवर्ड |
/ उपयोगकर्ता / रिसेटपासवर्ड | डाल | पासवर्ड रीसेट | ईमेल |
/ फ़ीड | प्राप्त | वर्णन और अपठित गिनती के साथ प्रत्येक उपयोगकर्ता के लिए फ़ीड सदस्यता प्राप्त करें | |
/ / सदस्यता लें फ़ीड | डाल | एक नई फ़ीड की सदस्यता लें | फ़ीड यूआरएल |
/ फीड / प्रविष्टियों | प्राप्त | उपयोगकर्ता द्वारा सब्सक्राइब किए गए फ़ीड के लिए सभी प्रविष्टियां प्राप्त करें | |
/ फीड / <फीडआइडी> / प्रविष्टियों | प्राप्त | एक विशिष्ट फ़ीड के लिए सभी प्रविष्टियां प्राप्त करें | |
/ फीड / <फीडआइडी> | डाल | सभी प्रविष्टियों को एक विशिष्ट फ़ीड के लिए पढ़ने या अपठित के रूप में चिह्नित करें | पढ़ें = <सच |झूठी> |
/ फीड / <फीडआइडी> / प्रविष्टियों / <एंट्रीआइडी> | डाल | एक विशिष्ट प्रविष्टि को या तो पढ़ने या अपठित के रूप में चिह्नित करें | पढ़ें = <सच |झूठी> |
/ फीड / <फीडआइडी> | डीलीट | इस विशेष फ़ीड से सदस्यता छोड़ें |
सुरक्षित एचटीटीपी एक मानक दृष्टिकोण है जो उत्पादन विवरण में पासवर्ड जैसे संवेदनशील विवरण भेजने के लिए उपयोग किया जाता है
अगले कदम: असली दुनिया प्रमाणीकरण
उपयोगकर्ताओं, पासवर्ड और रीसेट को सुरक्षित रूप से प्रबंधित करने के लिए उपयोगकर्ता प्रमाणीकरण महत्वपूर्ण है। उपयोगकर्ता खातों को प्रमाणीकृत करने के कई तरीके हैं।
उदाहरण के लिए, आप पासपोर्ट प्लगइन का उपयोग नोड.जेएस के साथ कर सकते हैं, जो फेसबुक , ट्विटरऔर सोशल मीडिया खातों के साथ प्रमाणित करने के लिए उपयोगी है ।
उपर्युक्त उदाहरण स्टॉर्मपाथ, एक आरईएसटी एपीआई के उपयोग पर निर्भर करता है जो एपीआई कुंजी के माध्यम से प्राधिकरण और प्रमाणीकरण का समर्थन करता है और उपयोगकर्ता प्रबंधन-जैसी-सेवा प्रदान करता है।
अनुशंसित लेख
यहां कुछ लेख दिए गए हैं जो आपको मोंगोडीबी का उपयोग करके वेब अनुप्रयोगों के बारे में अधिक जानकारी प्राप्त करने में मदद करेंगे ताकि बस लिंक के माध्यम से जाएं।