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)

خروجی: