Python MongoDB Find
เรียนเขียนโปรแกรมง่ายๆกับ Expert Programming Tutor ในบท Python MongoDB Find
ใน MongoDB เราใช้วิธีการหาและ findOne เพื่อหาข้อมูลในการรวบรวม เช่นเดียวกับคำสั่ง SELECT ที่ใช้ในการหาข้อมูลในตารางในฐานข้อมูล MySQL
ในการเลือกข้อมูลจากการรวบรวมใน MongoDB เราสามารถใช้เมธอด find_one() ส่งคืนการเกิดครั้งแรกในการเลือก
ตัวอย่าง
หาเอกสาร(Document)แรกในการรวบรวมลูกค้า
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
x mycol.find_one()
print(x)
|
ผลลัพธ์
C:\Users\My Name>python demo_mongodb_find_one.py
{'_id': 1, 'name': 'John', 'address': 'Highway37'}
|
การหาทั้งหมด
ในการเลือกข้อมูลจากตารางใน MongoDB เราสามารถใช้วิธี find() วิธีการส่งกลับที่เกิดขึ้นทั้งหมดในการเลือก พารามิเตอร์แรกของวิธีการfind() เป็นวัตถุแบบสอบถาม ในตัวอย่างนี้เราใช้วัตถุแบบสอบถามที่ว่างเปล่าซึ่งเลือกเอกสารทั้งหมดในคอลเลกชัน ไม่มีพารามิเตอร์ในเมธอด find() ที่ให้ผลลัพธ์เหมือนกับ SELECT * ใน MySQL
ตัวอย่าง
ส่งคืนเอกสารทั้งหมดในชุด "customers" และพิมพ์เอกสารแต่ละชุด
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find():
print(x)
|
ผลลัพธ์
C:\Users\My Name>python demo_mongodb_find.py
{'_id': 1, 'name': 'John', 'address': 'Highway37'}
{'_id': 2, 'name': 'Peter', 'address': 'Lowstreet 27'}
{'_id': 3, 'name': 'Amy', 'address': 'Apple st 652'}
{'_id': 4, 'name': 'Hannah', 'address': 'Mountain 21'}
{'_id': 5, 'name': 'Michael', 'address': 'Valley 345'}
{'_id': 6, 'name': 'Sandy', 'address': 'Ocean blvd 2'}
{'_id': 7, 'name': 'Betty', 'address': 'Green Grass 1'}
{'_id': 8, 'name': 'Richard', 'address': 'Sky st 331'}
{'_id': 9, 'name': 'Susan', 'address': 'One way 98'}
{'_id': 10, 'name': 'Vicky', 'address': 'Yellow Garden 2'}
{'_id': 11, 'name': 'Ben', 'address': 'Park Lane 38'}
{'_id': 12, 'name': 'William', 'address': 'Central st 954'}
{'_id': 13, 'name': 'Chuck', 'address': 'Main Road 989'}
{'_id': 14, 'name': 'Viola', 'address': 'Sideway 1633'}
|
ส่งคืนเฉพาะบางค่า
พารามิเตอร์ที่สองของเมธอด find() เป็นวัตถุที่อธิบายถึงฟิลด์ที่จะรวมในผลลัพธ์ พารามิเตอร์นี้เป็นทางเลือกและหากไม่ใส่ฟิลด์ทั้งหมดจะรวมอยู่ในผลลัพธ์
ตัวอย่าง
ส่งคืนเฉพาะชื่อและที่อยู่ไม่ใช่ _ids
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")ฅ
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "_id": 0, "name": 1, "address": 1 }):
print(x)
|
ผลลัพธ์
C:\Users\My Name>python demo_mongodb_find_some.py
{'name': 'John', 'address': 'Highway37'}
{'name': 'Peter', 'address': 'Lowstreet 27'}
{'name': 'Amy', 'address': 'Apple st 652'}
{'name': 'Hannah', 'address': 'Mountain 21'}
{'name': 'Michael', 'address': 'Valley 345'}
{'name': 'Sandy', 'address': 'Ocean blvd 2'}
{'name': 'Betty', 'address': 'Green Grass 1'}
{'name': 'Richard', 'address': 'Sky st 331'}
{'name': 'Susan', 'address': 'One way 98'}
{'name': 'Vicky', 'address': 'Yellow Garden 2'}
{'name': 'Ben', 'address': 'Park Lane 38'}
{'name': 'William', 'address': 'Central st 954'}
{'name': 'Chuck', 'address': 'Main Road 989'}
{'name': 'Viola', 'address': 'Sideway 1633'}
|
นักเรียนไม่ได้รับอนุญาตให้ระบุทั้งค่า 0 และ 1 ในวัตถุเดียวกัน (ยกเว้นว่าหนึ่งในฟิลด์คือฟิลด์ _id) หากนักเรียนระบุเขตข้อมูลที่มีค่า 0 เขตข้อมูลอื่น ๆ ทั้งหมดจะได้รับค่า 1 และในทางกลับกัน
ตัวอย่าง
ตัวอย่างนี้จะยกเว้น "address" จากผลลัพธ์
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "address": 0 }):
print(x)
|
ผลลัพธ์
C:\Users\My Name>python demo_mongodb_find_some2.py
{'_id': 1, 'name': 'John'}
{'_id': 2, 'name': 'Peter'}
{'_id': 3, 'name': 'Amy'}
{'_id': 4, 'name': 'Hannah'}
{'_id': 5, 'name': 'Michael'}
{'_id': 6, 'name': 'Sandy'}
{'_id': 7, 'name': 'Betty'}
{'_id': 8, 'name': 'Richard'}
{'_id': 9, 'name': 'Susan'}
{'_id': 10, 'name': 'Vicky'}
{'_id': 11, 'name': 'Ben'}
{'_id': 12, 'name': 'William'}
{'_id': 13, 'name': 'Chuck'}
{'_id': 14, 'name': 'Viola'}
|
ตัวอย่าง
นักเรียนจะได้รับError หากนักเรียนระบุทั้ง 0 และ 1 ค่าในออบเจ็กต์เดียวกัน (ยกเว้นว่าฟิลด์ใดฟิลด์หนึ่งเป็นฟิลด์ _id):
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "name": 1, "address": 0 }):
print(x)
|
แปลจาก https://www.w3schools.com/python/python_mongodb_find.asp
บทความนี้อาจจะมีที่ผิด กรุณาตรวจสอบก่อนใช้
หากมีข้อผิดพลาด/ต้องการพูดคุยเพิ่มเติมเกี่ยวกับบทความนี้ กรุณาแจ้งที่
http://m.me/Expert.Programming.Tutor
ไม่อยากอ่าน Tutorial อยากมาเรียนเลยทำอย่างไร?
หรือติดต่อ
085-350-7540 (DTAC)
084-88-00-255 (AIS)
026-111-618
หรือทาง EMAIL: NTPRINTF@GMAIL.COM
แผนที่ ที่ตั้งของอาคารของเรา