Python กับ MongoDB [WINDOW] PART 1

Mister Nay
2 min readJan 14, 2018

--

“Python ที่น่ารัก กับ MongoDB ที่แสนใจดี”

สวัสดีครับ คนที่เข้ามาอ่าน อาจจะงง อะไร คือ Python ที่น่ารัก กับ MongoDB ที่แสนใจดี มันคือ… คือ Python กับ MongoDB อ้าวๆ งงๆ ฮ่าๆ

Python ที่น่ารัก ก็คือ ภาษาที่เขียนได้ค่อนข้างง่าย(หรือเปล่า) เป็นภาษาที่อ่าน Syntax แล้วเข้าใจได้ง่าย ทำความเข้าใจได้เร็ว

MongoDB ที่แสนใจดี ก็คือ เป็น Database แบบ NoSQL ใช้ง่าย และยังฟรี อีกด้วย โดยการบันทึกนั้นจะเป็น รูปแบบ Json หรือ เรียกว่า Document นั่นเอง

โดยจะมา แชร์เกี่ยวกับ การเชื่อมต่อ DB โดยใช้ Python กับ MongoDB

ก่อนอื่นเลย สิ่งที่ต้องมี

  • MongoDB
  • pymongo

สำหรับ Part นี้จะสอนการติดตั้ง ใน Windows นะครับ

ดาวน์โหลดไฟล์ MongoDB

  • ดับเบิ้ลคลิกไฟล์ ที่ทำการดาวน์โหลดมา ทำการติดตั้งตามปกติ
  • ถัดมาสร้างโฟล์เดอร์ data กับ log และสร้างไฟล์ mongod.cfg เก็บไว้ที่ๆ ตำแหน่งเราติดตั้ง เช่น
  • ต่อไป เข้าไปยังไฟล์ mongod.cfg แล้ว ก็อปโค๊ดลงไปวาง
systemLog:
destination: file
path: ตำแหน่งที่ติดตั้ง\log\mongod.log
logAppend: true
storage:
dbPath: ตำแหน่งที่ติดตั้ง\data
net:
bindIp: 127.0.0.1
port: 27017

โดยแก้ไขเฉพาะ ตำแหน่งที่ติดตั้ง กด Save

ถัดไปจะทำการสร้าง Service MongoDB

  • เปิด CMD run as Administrator

พิมพ์คำสั่งดังนี้

1.cd ตำแหน่งที่ติดตั้ง\bin\
2.mongod.exe  --config “ตำแหน่งที่ติดตั้ง\mongod.cfg” --install

***ทำการเปิด ใช้งาน Service พิมพ์คำสั่ง net start MongoDB
***ถ้าต้องการปิดใช้งาน พิมพ์คำสั่ง net stop MongoDB

ทดสอบโดยการ ใช้ คำสั่ง mongo ถ้าขึ้นตามรูปก็เสร็จสิ้น

credit

ถัดไปลง GUI ให้ MongoDB เพื่อความใช้งานง่ายนะครับ

Download MongoDB-compass

ดับเบิลคลิก ไฟล์ แล้วรอสักครู่ จะได้หน้านี้นะครับ จากนั้นก็ Connect ไป

เสร็จเรียบร้อยครับ

ถัดไปจะต้องลง ตัว connection นะครับ สำหรับ python เรียกว่า pymongo นะครับ

ติดตั้งก็ “pip install pymongo”

เมื่อติดตั้งสำเร็จ ลองทดสอบด้วยโค๊ด

import pymongo

db = pymongo.MongoClient()
databaseList = db.list_database_names()
print(databaseList)
print(db[databaseList[0]])

จะได้ Output ดังนี้

สำหรับ Part นี้ขอจบเท่านี้ หากมีปัญหาสามารถสอบถามได้ครับ พร้อมช่วยเหลือ :) ขอบคุณครับ

--

--

No responses yet