Python MongoDB Find
ใน MongoDB เราใช้ เมธอด findและfindOneเพื่อค้นหาข้อมูลในคอลเล็กชัน
เช่นเดียวกับ คำสั่ง SELECTที่ใช้เพื่อค้นหาข้อมูลในตารางในฐานข้อมูล MySQL
ค้นหาหนึ่ง
ในการเลือกข้อมูลจากคอลเล็กชันใน MongoDB เราสามารถใช้
find_one()
เมธอดได้
วิธี การfind_one()
ส่งคืนการเกิดขึ้นครั้งแรกในการเลือก
ตัวอย่าง
ค้นหาเอกสารแรกในกลุ่มลูกค้า:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
x = mycol.find_one()
print(x)
ค้นหาทั้งหมด
ในการเลือกข้อมูลจากตารางใน MongoDB เราสามารถใช้
find()
เมธอดนี้ได้เช่นกัน
find()
เมธอดส่งคืนรายการทั้งหมดในส่วนที่เลือก
พารามิเตอร์แรกของfind()
วิธีการคือวัตถุแบบสอบถาม ในตัวอย่างนี้ เราใช้ออบเจ็กต์คิวรีที่ว่างเปล่า ซึ่งจะเลือกเอกสารทั้งหมดในคอลเล็กชัน
ไม่มีพารามิเตอร์ในเมธอด find() ให้ผลลัพธ์เหมือนกับSELECT *ใน MySQL
ตัวอย่าง
ส่งคืนเอกสารทั้งหมดในคอลเลกชัน "ลูกค้า" และพิมพ์เอกสารแต่ละฉบับ:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find():
print(x)
ส่งคืนเฉพาะบางฟิลด์
พารามิเตอร์ที่สองของ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)
คุณไม่ได้รับอนุญาตให้ระบุค่าทั้ง 0 และ 1 ในออบเจ็กต์เดียวกัน (ยกเว้นว่าฟิลด์ใดฟิลด์หนึ่งเป็นฟิลด์ _id) หากคุณระบุฟิลด์ที่มีค่า 0 ฟิลด์อื่นๆ ทั้งหมดจะได้รับค่า 1 และในทางกลับกัน:
ตัวอย่าง
ตัวอย่างนี้จะไม่รวม "ที่อยู่" จากผลลัพธ์:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
for x in mycol.find({},{ "address": 0 }):
print(x)
ตัวอย่าง
คุณจะได้รับข้อผิดพลาดหากคุณระบุทั้งค่า 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)