MongoDB Query

فیلتر کردن نتایج

وقتی که داکیومنت ها را در Collection پیدا می‌کنید می‌توان با یک query object آن ها را فیلتر کرد.

اولین آرگومان متد ()find یک query object است که جستجو را محدود می‌کند.

 

مثال: پیدا کردن داکیومنت ها با آدرس “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)

Advanced Query

می‌توان با ایجاد query های پیشرفته در query object تغییر ایجاد کرد.

مثلا برای پیدا کردن داکیومنت هایی که ادرسشان با حرف “S” یا حروف بزرگتر از آن شروع می‌شود میتوان از (greater than modifier) استفاده کرد. به شکل {“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 Expressions

می‌توان از عبارت های منظم برای تغییر استفاده کنید.

مثلا برای پیدا کردن فیلد هایی که ادرسشان با حرف “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)