Python กับ MongoDB [part 2]

Mister Nay
3 min readJan 21, 2018

--

หลังจากที่เราได้ตั้งค่า mongoDB ไปใน Part ที่แล้ว ใน Part นี้จะเป็นการใช้งานเบื้องต้น นะครับ

มาเริ่ม Coding กันเลย

ก่อนอื่น ต้องสร้าง Database กับ Collection ก่อนนะครับ

โดย เข้าที่ Mongo Compass

ทำการ Create Database แล้วตั้งชื่อ DB name กับ Collection Name นะครับ

Collection คือ ข้อมูลย่อยๆนะครับ collection สามารถสร้างได้หลายอัน

เช่น BookDB มี collection ย่อย เป็น Type ต่างๆ Cartoon , Knowledge

มาสร้างกันเลย

เมื่อเข้าไปยัง Collection ก็สามารถ เพิ่ม Field ได้ปกติ นะครับ

โดยจะเป็นรูปแบบ Key — Value นะครับ

มาเริ่มใช้กับ python กัน

import pymongo as pm #import driver connector ในชื่อ pm

client = pm.MongoClient() #เชื่อมต่อ MongoDB
db = client['Book'] #เชื่อมต่อ กับ ฐานข้อมูล
print(db.collection_names()) #ลองแสดงผล ออกมาดูว่าใช่ไหม

Output:

ต่อไปมาลอง สร้างข้อมูลใน Collection กัน

Insert:

สามารถ Insert เป็น รูปแบบ Dict ได้ (Key-Value)

import pymongo as pm

client = pm.MongoClient()
db = client['Book']
collection = db['Cartoon']
collection.insert_one({'name':'Boruto'})

ลอง Query ออกมาดู

import pymongo as pm

client = pm.MongoClient()
db = client['Book']
collection = db['Cartoon']
collection.insert_one({'name':'Boruto'})
data = collection.find() # เราจะใช้คำสั่ง find() นะครับ สำหรับเรียกทั้งหมด
for i in data:
print(i)

ถ้าต้องการแค่ ตัวเดียว สามารถเรียก find_one() ได้นะครับ

เราจะสามารถ เลือก เฉพาะได้ โดย ใส่ parameter ไปดังนี้

data = collection.find({'name':'Boruto'}) #เรียกที่ name = Boruto

การแสดงออกมา สามารถเรียก Key ได้โดยตรงเช่น

เราต้องการแค่ name

ก็สามารถแสดง โดย i[‘name’] ได้เลย

ง่ายมั้ยครับ ต่อไปลอง Update

import pymongo as pm

client = pm.MongoClient()
db = client['Book']
collection = db['Cartoon']
collection.insert_one({'name':'Boruto'})
collection.find_one_and_update({'name':'Boruto'},{'$set':{'name':'Naruto'}})
data = collection.find()
for i in data:
print(i['name'])

“collection.find_one_and_update({‘name’:’Boruto’},{‘$set’:{‘name’:’Naruto’}})”

เราจะอัพเดท ตัวแรก ให้เป็น naruto ง่ายๆคือ ใช้ {‘$set’:{‘name’:’Naruto’}}

แค่นี่เราก็จะได้แล้ว

Delete ก็ใช้ delete_one กับ delete_many นะครับ
collection.delete_one({'name':'Naruto'})

ง่ายๆใช่มั้ยครับ นี่คือการใช้งานแบบเบื้องต้นนะครับ ก็จะมีการใช้งานเพิ่มเติมอีกมากมาย สามารถอ่านได้ที่ Doc เลยครับ

ขอบคุณครับ :)

--

--

No responses yet