Python MongoDB แบบสอบถาม
กรองผลลัพธ์
เมื่อค้นหาเอกสารในคอลเลกชั่น คุณสามารถกรองผลลัพธ์โดยใช้ออบเจ็กต์คิวรี
อาร์กิวเมนต์แรกของfind()
เมธอดเป็นออบเจกต์แบบสอบถาม และใช้เพื่อจำกัดการค้นหา
ตัวอย่าง
ค้นหาเอกสารที่มีที่อยู่ "Park Lane 38":
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
myquery = { "address": "Park Lane 38" }
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)
แบบสอบถามขั้นสูง
ในการสร้างการสืบค้นข้อมูลขั้นสูง คุณสามารถใช้ตัวแก้ไขเป็นค่าในวัตถุการสืบค้น
เช่น ค้นหาเอกสารที่ช่อง "ที่อยู่" ขึ้นต้นด้วยตัวอักษร "S" หรือสูงกว่า (ตามตัวอักษร) ให้ใช้ตัวแก้ไขมากกว่า:
{"$gt": "S"}
:
ตัวอย่าง
ค้นหาเอกสารที่ที่อยู่ขึ้นต้นด้วยตัวอักษร "S" หรือสูงกว่า:
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
myquery = { "address": { "$gt": "S" } }
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)
กรองด้วยนิพจน์ทั่วไป
คุณยังสามารถใช้นิพจน์ทั่วไปเป็นตัวปรับเปลี่ยนได้
นิพจน์ทั่วไปสามารถใช้เพื่อค้นหาสตริงเท่านั้น
หากต้องการค้นหาเฉพาะเอกสารที่ช่อง "ที่อยู่" ขึ้นต้นด้วยตัวอักษร "S" ให้ใช้นิพจน์ทั่วไป{"$regex": "^S"}
:
ตัวอย่าง
ค้นหาเอกสารที่ที่อยู่ขึ้นต้นด้วยตัวอักษร "S":
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
myquery = { "address": { "$regex": "^S" } }
mydoc = mycol.find(myquery)
for x in mydoc:
print(x)