Letheden ved MongoDB kombineret med kraften i GraphQL:Jeg kan ikke komme i tanke om en bedre kombination end denne! Jeg vil kuratere en række artikler for at arbejde med GraphQL + MongoDB + Django. Dette er den første del af den serie.
I denne artikel lærer du, hvordan du-
- importer data til MongoDB ved hjælp af en CSV-fil
- installer GraphQL og andre relaterede Django-biblioteker
- træk data fra MongoDB til Django
Fra .csv til MongoDB Collection
Kør denne kode direkte i din terminal (ikke mongod-konsollen) for at importere en CSV-fil fra din lokale. Vi bruger mongoimport, som er et værktøj/kommando, der gør det muligt for os at importere enhver JSON, CSV til TSV-fil.
mongoimport -d vendors -c vendors --type csv --file vendorlist.csv --headerline
hvor
-d:databasenavn
-c:samlingsnavn
-headerline:bruges til at beholde overskrifterne
Installation af GraphQL i Django
Endnu en saga om versionsmismatch. Jeg har allerede spillet med dem, så det behøver du ikke 🙂
Nedenfor er de fejl, der forårsagede en masse forvirring med hensyn til versionerne-
Fejl, da versionen af graphene-django var 3.0b7, som var nyeste, men den kunne ikke importere get_default_backend-pakken
Kommandoer til at installere hvert bibliotek/pakke/driver
- 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"
💡 Glem ikke at tilføje 'graphene-django' og 'graphene' til din settings.py-fil
Få en MongoDB-samlings data til Django-projektet
Importer Document-klassen fra mongoengine-biblioteket og importer efterfølgende de felter, der kræves.
💡 Du kan tjekke datatypen for feltet i MongoDB i MongoDB Atlas-konsollen og derefter importere feltet i dit Django-projekt. Eksempel- ID-feltet i et dokument-id altid et ObjectIDField.
Jeg har en MongoDB dokumentleverandører, og den klasse, der har adgang til dokumentet, er VendorData.
Dette var den første del af serien af MongoDB+Django+GraphQL-tutorials. Jeg vil forklare mere om at skrive forespørgsler i Django og GraphQL i de senere dele.