Sự dễ dàng của MongoDB kết hợp với sức mạnh của GraphQL:Tôi không thể nghĩ ra sự kết hợp nào tốt hơn thế này! Tôi sẽ quản lý một loạt các bài viết về cách làm việc trên GraphQL + MongoDB + Django. Đây là phần đầu tiên của loạt bài đó.
Trong bài viết này, bạn sẽ học cách-
- nhập dữ liệu vào MongoDB bằng tệp CSV
- cài đặt GraphQL và các thư viện Django có liên quan khác
- kéo dữ liệu từ MongoDB sang Django
Từ .csv đến MongoDB Collection
Chạy mã này trực tiếp trong thiết bị đầu cuối của bạn (không phải bảng điều khiển mongod) để nhập tệp CSV từ cục bộ của bạn. Chúng tôi đang sử dụng mongoimport, một công cụ / lệnh cho phép chúng tôi nhập bất kỳ tệp JSON, CSV nào sang TSV.
mongoimport -d vendors -c vendors --type csv --file vendorlist.csv --headerline
ở đâu
-d:tên cơ sở dữ liệu
-c:tên bộ sưu tập
-headerline:được sử dụng để giữ các tiêu đề
Cài đặt GraphQL trong Django
Tuy nhiên, một câu chuyện khác về lập phiên bản không khớp. Tôi đã chơi với họ rồi nên bạn không cần phải 🙂
Dưới đây là các lỗi gây ra nhiều nhầm lẫn về các phiên bản-
Lỗi khi phiên bản graphene-django là 3.0b7 mới nhất nhưng không thể nhập gói get_default_backend
Các lệnh cài đặt từng thư viện / gói / trình điều khiển
- 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"
💡 Đừng quên thêm ‘graphene-django’ và ‘graphene’ vào tệp settings.py của bạn
Nhận dữ liệu của bộ sưu tập MongoDB cho dự án Django
Nhập lớp Tài liệu từ thư viện mongoengine và sau đó nhập các trường được yêu cầu.
💡 Bạn có thể kiểm tra kiểu dữ liệu của trường trong MongoDB trong bảng điều khiển MongoDB Atlas và sau đó nhập trường vào dự án Django của bạn. Ví dụ- Trường ID trong id tài liệu luôn là ObjectIDField.
Tôi có nhà cung cấp tài liệu MongoDB và lớp đang truy cập tài liệu là VendorData.
Đây là phần đầu tiên của loạt bài hướng dẫn về MongoDB + Django + GraphQL. Tôi sẽ giải thích thêm về cách viết truy vấn trong Django và GraphQL trong các phần sau.