ग्राफक्यूएल की शक्ति के साथ संयुक्त मोंगोडीबी की आसानी:मैं इससे बेहतर संयोजन के बारे में नहीं सोच सकता! मैं GraphQL + MongoDB + Django पर काम करने के लिए लेखों की एक श्रृंखला तैयार करूँगा। यह उस श्रृंखला का पहला भाग है।
इस लेख में, आप सीखेंगे कि कैसे-
- एक CSV फ़ाइल का उपयोग करके MongoDB में डेटा आयात करें
- ग्राफक्यूएल और अन्य संबंधित Django लाइब्रेरी स्थापित करें
- MongoDB से Django तक डेटा खींचें
.csv से MongoDB संग्रह तक
अपने स्थानीय से CSV फ़ाइल आयात करने के लिए इस कोड को सीधे अपने टर्मिनल (मोंगॉड कंसोल नहीं) में चलाएँ। हम mongoimport का उपयोग कर रहे हैं जो एक उपकरण/कमांड है जो हमें किसी भी JSON, CSV को TSV फ़ाइल में आयात करने में सक्षम बनाता है।
mongoimport -d vendors -c vendors --type csv --file vendorlist.csv --headerline
जहां
-d:डेटाबेस का नाम
-सी:संग्रह का नाम
-हेडरलाइन:हेडर रखने के लिए इस्तेमाल किया जाता है
Django में GraphQL इंस्टॉल करना
संस्करण बेमेल की एक और गाथा। मैं उनके साथ पहले ही खेल चुका हूं, इसलिए आपको 🙂
. की जरूरत नहीं है
नीचे वे त्रुटियां हैं जो संस्करणों के संबंध में बहुत भ्रम पैदा कर रही थीं-
त्रुटि जब ग्रैफेन-डीजेंगो का संस्करण 3.0b7 था जो नवीनतम था लेकिन यह get_default_backend पैकेज आयात नहीं कर सका
प्रत्येक पुस्तकालय/पैकेज/चालक को स्थापित करने के आदेश
- ग्राफीन
pip install graphene==2.1.8
- ग्राफक्ल-कोर
python -m pip install graphql-core==2.3.2
- पाइमोंगो
python3 -m pip install pymongo==3.12.1
- ग्राफीन-django
pip install "graphene-django>=2.0"
अपनी settings.py फ़ाइल में 'graphene-django' और 'graphene' जोड़ना न भूलें
Django प्रोजेक्ट के लिए MongoDB संग्रह का डेटा प्राप्त करना
दस्तावेज़ वर्ग को mongoengine पुस्तकालय से आयात करें और बाद में आवश्यक फ़ील्ड आयात करें।
आप MongoDB एटलस कंसोल में MongoDB में फ़ील्ड के डेटाटाइप की जांच कर सकते हैं और फिर अपने Django प्रोजेक्ट में फ़ील्ड आयात कर सकते हैं। उदाहरण- दस्तावेज़ आईडी में आईडी फ़ील्ड हमेशा एक ObjectIDField है।
मेरे पास एक मोंगोडीबी दस्तावेज़ विक्रेता हैं और दस्तावेज़ तक पहुंचने वाला वर्ग विक्रेताडेटा है।
यह MongoDB+Django+GraphQL ट्यूटोरियल की श्रृंखला का पहला भाग था। मैं बाद के हिस्सों में Django और GraphQL में प्रश्नों को लिखने के बारे में अधिक बताऊंगा।