A facilidade do MongoDB combinada com o poder do GraphQL:não consigo pensar em uma combinação melhor do que essa! Estarei curando uma série de artigos para trabalhar em GraphQL + MongoDB + Django. Esta é a primeira parte dessa série.
Neste artigo, você aprenderá como
- importar dados para o MongoDB usando um arquivo CSV
- instale o GraphQL e outras bibliotecas Django relacionadas
- puxar dados do MongoDB para o Django
De .csv para a coleção MongoDB
Execute este código diretamente no seu terminal (não no console do mongod) para importar um arquivo CSV do seu local. Estamos usando mongoimport que é uma ferramenta/comando que nos permite importar qualquer arquivo JSON, CSV para TSV.
mongoimport -d vendors -c vendors --type csv --file vendorlist.csv --headerline
Onde
-d:nome do banco de dados
-c:nome da coleção
-headerline:usado para manter os cabeçalhos
Instalando GraphQL no Django
Mais uma saga de incompatibilidade de versão. Já brinquei com eles para não precisar 🙂
Abaixo estão os erros que estavam causando muita confusão em relação às versões-
Erro quando a versão do graphene-django era 3.0b7, que era a mais recente, mas não pôde importar o pacote get_default_backend
Comandos para instalar cada biblioteca/pacote/driver
- grafeno
pip install graphene==2.1.8
- graphql-core
python -m pip install graphql-core==2.3.2
- pimongo
python3 -m pip install pymongo==3.12.1
- grafene-django
pip install "graphene-django>=2.0"
💡 Não se esqueça de adicionar 'graphene-django' e 'graphene' ao seu arquivo settings.py
Obtendo os dados de uma coleção do MongoDB para o projeto Django
Importe a classe Document da biblioteca mongoengine e, posteriormente, importe os campos necessários.
💡 Você pode verificar o tipo de dados do campo no MongoDB no console do MongoDB Atlas e depois importar o campo em seu projeto Django. Exemplo - O campo ID em um ID de documento sempre é um ObjectIDField.
Eu tenho um documento de fornecedores MongoDB e a classe que está acessando o documento é VendorData.
Esta foi a primeira parte da série de tutoriais MongoDB+Django+GraphQL. Explicarei mais sobre como escrever consultas em Django e GraphQL nas partes posteriores.