Python MongoDB Query
فیلتر کردن نتایج
در زمان پیدا کردن یک سند در یک مجموعه، میتوانید نتایج را با استفاده از شیء کوئری فیلتر کنید.
اولین پارامتر تابع شیء 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)
کوئری پیشرفته
جهت ایجاد کوئری پیشرفته میتوان از اصلاح کنندهها (modifiers) به عنوان مقدار در شیء کوئری استفاده کرد.
برای نمونه میتوان آدرسهایی را پیدا کرد که با حرف S یا بزرگتر (از لحاظ الفبایی) شروع شوند. برای این منظور از اصلاح کننده بزرگتر از {"$gt": "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)
فیلتر کردن با استفاده از عبارات با قاعده
میتوان از عبارات با قاعده (regular expression) به عنوان اصلاح کننده استفاده کرد.
عبارات با قاعده را تنها میتوان روی کوئریهای رشته به کار برد.
در زیر تنها آدرسهایی را جستجو میکنیم که با حرف S شروع شده باشند {"$regex": "^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)