Лекотата на MongoDB, съчетана със силата на GraphQL:Не мога да измисля по-добра комбинация от тази! Ще подготвя серия от статии за работа върху GraphQL + MongoDB + Django. Това е първата част от тази поредица.
В тази статия ще научите как да-
- импортирайте данни в MongoDB с помощта на CSV файл
- инсталирайте GraphQL и други свързани Django библиотеки
- изтеглете данни от MongoDB към Django
От .csv към колекция MongoDB
Изпълнете този код директно във вашия терминал (не в конзолата на mongod), за да импортирате CSV файл от вашия локален. Ние използваме mongoimport, който е инструмент/команда, която ни позволява да импортираме всеки JSON, CSV в TSV файл.
mongoimport -d vendors -c vendors --type csv --file vendorlist.csv --headerline
където
-d:име на базата данни
-c:име на колекция
-headerline:използва се за запазване на заглавките
Инсталиране на GraphQL в Django
Още една сага за несъответствие на версиите. Вече съм играл с тях, така че не е нужно 🙂
По-долу са грешките, които причиняват много объркване по отношение на версиите-
Грешка, когато версията на graphene-django беше 3.0b7, която беше най-новата, но не можа да импортира пакета get_default_backend
Команди за инсталиране на всяка библиотека/пакет/драйвер
- графен
pip install graphene==2.1.8
- graphql-core
python -m pip install graphql-core==2.3.2
- пимонго
python3 -m pip install pymongo==3.12.1
- graphene-django
pip install "graphene-django>=2.0"
💡 Не забравяйте да добавите „graphene-django“ и „graphene“ към вашия файл settings.py
Получаване на данните от колекция MongoDB в Django проект
Импортирайте класа Document от библиотеката на mongoengine и впоследствие импортирайте полетата, които се изискват.
💡 Можете да проверите типа данни на полето в MongoDB в MongoDB Atlas конзолата и след това да импортирате полето във вашия Django проект. Пример – Идентификационното поле в идентификатора на документ винаги е ObjectIDField.
Имам доставчици на документи MongoDB и класът, който осъществява достъп до документа, е VendorData.
Това беше първата част от поредицата уроци по MongoDB+Django+GraphQL. Ще обясня повече за писането на заявки в Django и GraphQL в следващите части.