FastAPI & MongoDB (Part 2)

Sittipong Saychum
1 min readJul 4, 2021

--

part นี้เป็น part ที่ 2 นะครับ ต่อจาก part ที่แล้ว ใครยังไม่ได้อ่าน สามารถอ่านได้จาก link ด้านล่างนี้ได้เลยครับ

เวลาเราทำ Back-end สิ่งที่ขาดไม่ได้ก็คือ การ connect กัน database ซึ่งผมจะใช้ MongoDB สำหรับใครที่ยังใช้ MongoDB ไม่เป็น ตามไปอ่าน link ด้านล่างนี้นะครับ

ใน code ผมมีการทำ Authentication ด้วยนะครับ วิธีอยู่ link ด้านล่างนี้จะครับ

ก่อนอื่นเราลงตัวนี้กันก่อนเลยครับ pymongo

pip install pymongo

ใน code เราให้ import ตัวนี้เข้าไปครับ

from pymongo import MongoClient

กำหนดตัวแปร uri ครับ

uri = "mongodb://<user>:<password>@localhost:<port>/<DB_Name>"

แต่วิธีการเขียน user&pass ลงใน code นี้อันตรายมากกว่า ผมแนะนะให้ ใช้ค่าจาก Environment Variables ดีกว่าครับ วิธีคือก่อนที่เราจะ start ให้เรา export Variables เสียก่อน

export MONGODB_URL="mongodb://<user>:<password>@<url>:port/<DB_Name>"

ใน code เราสามารถถึงค่า Environment Variables ได้ดังนี้

import os
uri = os.getenv("MONGODB_URL")

เสร็จแล้วต่อเป็นไปการทดสอบดึงข้อมูลจากฐานข้อมูลดู

client = MongoClient(uri)
db = client.get_database()
myCollection = db["vajaApi"]
@router.get("/db")
def read_db():
record_list = myCollection.find_one({"name": "blue"})
return {"ResultDB": record_list["name"]}

เสร็จแล้วครับ ง่ายๆเลย output ที่ return ออกมาเป็น tpye dict นะครับ ถ้าสนใจศึกษาเพิ่มเติมวิธีการ insert ,update สามารถดูได้จาก link ด้านล่างนะครับ

--

--