The ease of MongoDB combined with the power of GraphQL: I cannot think of a better combination than this! I will be curating a series of articles for working on GraphQL + MongoDB + Django. This is the first part of that series.
In this article, you will learn how to-
- import data into MongoDB using a CSV file
- install GraphQL and other related Django libraries
- pull data from MongoDB to Django
From .csv to MongoDB Collection
Run this code directly in your terminal (not mongod console) to import a CSV file from your local. We are using mongoimport which is a tool/command that enables us to import any JSON, CSV to TSV file.
mongoimport -d vendors -c vendors --type csv --file vendorlist.csv --headerline
where
-d: database name
-c: collection name
-headerline: used to keep the headers
Installing GraphQL in Django
Yet another saga of versioning mismatch. I have already played with them so you don't have to š
Below are the errors that were causing a lot of confusion regarding the versions-
Error when the version of graphene-django was 3.0b7 which was latest but it couldnāt import the get_default_backend package
Commands to install each library/package/driver
- graphene
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"
š” Donāt forget to add āgraphene-djangoā and āgrapheneā to your settings.py file
Getting a MongoDB collectionās data to Django project
Import the Document class from mongoengine library and subsequently import the fields that are required.
š” Your can check the datatype of the field in MongoDB in MongoDB Atlas console and then import the field in your Django project. Example- The ID field in a document id always an ObjectIDField.
I have a MongoDB document vendors and the class that is accessing the document is VendorData.
This was the first part of the series of MongoDB+Django+GraphQL tutorials. I will explain more about writing queries in Django and GraphQL in the later parts.
Top comments (0)