Lättheten hos MongoDB i kombination med kraften i GraphQL:Jag kan inte komma på en bättre kombination än den här! Jag kommer att kurera en serie artiklar för att arbeta med GraphQL + MongoDB + Django. Det här är den första delen av den serien.
I den här artikeln kommer du att lära dig hur du-
- importera data till MongoDB med en CSV-fil
- installera GraphQL och andra relaterade Django-bibliotek
- dra data från MongoDB till Django
Från .csv till MongoDB Collection
Kör den här koden direkt i din terminal (inte mongod-konsolen) för att importera en CSV-fil från din lokala. Vi använder mongoimport som är ett verktyg/kommando som gör att vi kan importera valfri JSON, CSV till TSV-fil.
mongoimport -d vendors -c vendors --type csv --file vendorlist.csv --headerline
var
-d:databasnamn
-c:samlingens namn
-headerline:används för att behålla rubrikerna
Installera GraphQL i Django
Ännu en saga om versionsfelmatchning. Jag har redan spelat med dem så du behöver inte 🙂
Nedan är de fel som orsakade mycket förvirring angående versionerna-
Fel när versionen av graphene-django var 3.0b7 vilket var senaste men det gick inte att importera get_default_backend-paketet
Kommandon för att installera varje bibliotek/paket/drivrutin
- grafen
pip install graphene==2.1.8
- graphql-core
python -m pip install graphql-core==2.3.2
- pymongo
python3 -m pip install pymongo==3.12.1
- graphene-django
pip install "graphene-django>=2.0"
💡 Glöm inte att lägga till "graphene-django" och "graphene" i filen settings.py
Få en MongoDB-samlings data till Django-projektet
Importera klassen Document från mongoengine-biblioteket och importera sedan de fält som krävs.
💡 Du kan kontrollera datatypen för fältet i MongoDB i MongoDB Atlas-konsolen och sedan importera fältet i ditt Django-projekt. Exempel- ID-fältet i ett dokument-id alltid ett ObjectIDField.
Jag har en MongoDB-dokumentleverantör och klassen som kommer åt dokumentet är VendorData.
Detta var den första delen av serien av MongoDB+Django+GraphQL-tutorials. Jag kommer att förklara mer om att skriva frågor i Django och GraphQL i de senare delarna.