MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

Consultando dados do MongoDB usando GraphQL no Django:Get-Go (1)


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.